Hướng dẫn remove in json python - xóa trong json python

1. Tôi đã cố gắng sử dụng Python để xóa một khóa cụ thể và giá trị của nó trong tệp JSON. Đây là cấu trúc tệp JSON:

Nội phân Chính showShow

  • Trả lời 1:
  • Trả lời #2:
  • Làm cách nào để xóa một trường khỏi tệp JSON?
  • Làm cách nào để loại bỏ một thuộc tính khỏi đối tượng JSON?
  • Làm thế nào để bạn chỉnh sửa một đối tượng JSON trong Python?
  • Làm thế nào để bạn xóa một cặp giá trị khóa khỏi đối tượng JSON?

Nội phân chính

  • Trả lời 1:
  • Trả lời #2:
  • Làm cách nào để xóa một trường khỏi tệp JSON?
  • Làm cách nào để loại bỏ một thuộc tính khỏi đối tượng JSON?
  • Làm thế nào để bạn chỉnh sửa một đối tượng JSON trong Python?
  • Làm thế nào để bạn xóa một cặp giá trị khóa khỏi đối tượng JSON?

Nội phân chính

  • Trả lời 1:
  • Trả lời #2:
  • Làm cách nào để xóa một trường khỏi tệp JSON?
  • Làm cách nào để loại bỏ một thuộc tính khỏi đối tượng JSON?
  • Làm thế nào để bạn chỉnh sửa một đối tượng JSON trong Python?
  • Làm thế nào để bạn xóa một cặp giá trị khóa khỏi đối tượng JSON?
[
  {
    "_id": {
      "$oid": "6066af7bcb0716461578fa70"
    },
    "FileName": "copy_of_ex_fts.csv",
    "BriefInfo": "",
    "Size": "13.532KB",
    "UserName": "12795757"
    "data":"123"
  }
]

Nội phân chính

Tôi đã viết một số mã để xóa khóa "dữ liệu" và "tên người dùng" bằng các giá trị của chúng nhưng tôi chỉ có thể xóa dữ liệu và giá trị của nó không phải cho "Tên người dùng". Ai đó có thể cho tôi một số gợi ý để sửa lỗi này không?

jsonFile = open('./dataNewJson.json', 'r')
    values = json.load(jsonFile)
    for element in values:
        if 'data' in element:
            del element['data']
            print("check")
        elif 'BriefInfo' in element:
            del element['BriefInfo']
        elif 'UserName' in element:
            print("SSS")
            del element['UserName']
    values = dumps(values, indent = 2)

2. Ở đây là mã để thực hiện. Đầu tiên chỉ cần mở tệp JSON và tải dữ liệu. Sau đó, để kiểm tra xem khóa "dữ liệu" và "tên người dùng" có nằm trong đó hay không. Nếu có, hãy xóa các khóa này và giá trị của chúng.

Câu hỏi :

Xóa một phần tử trong đối tượng JSON

{
"business_id": "fNGIbpazjTRdXgwRY_NIXA",
"full_address": "1201 Washington AvenCarnegie, PA 15106",
"hours": {
    "Monday": {
        "close": "23:00",
        "open": "11:00"
    },
    "Tuesday": {
        "close": "23:00",
        "open": "11:00"
    },
    "Friday": {
        "close": "23:00",
        "open": "11:00"
    },
    "Wednesday": {
        "close": "23:00",
        "open": "11:00"
    },
    "Thursday": {
        "close": "23:00",
        "open": "11:00"
    },
    "Saturday": {
        "close": "23:00",
        "open": "11:00"
    }
},
"open": true,
"categories": ["Bars", "American (Traditional)", "Nightlife", "Lounges", "Restaurants"],
"city": "Carnegie",
"review_count": 7,
"name": "Rocky's Lounge",
"neighborhoods": [],
"longitude": -80.0849416,
"state": "PA",
"stars": 4.0,
"latitude": 40.3964688,
"attributes": {
    "Alcohol": "full_bar",
    "Noise Level": "average",
    "Music": {
        "dj": false
    },
    "Attire": "casual",
    "Ambience": {
        "romantic": false,
        "intimate": false,
        "touristy": false,
        "hipster": false,
        "divey": false,
        "classy": false,
        "trendy": false,
        "upscale": false,
        "casual": false
    },
    "Good for Kids": true,
    "Wheelchair Accessible": true,
    "Good For Dancing": false,
    "Delivery": false,
    "Dogs Allowed": false,
    "Coat Check": false,
    "Smoking": "no",
    "Accepts Credit Cards": true,
    "Take-out": true,
    "Price Range": 1,
    "Outdoor Seating": false,
    "Takes Reservations": false,
    "Waiter Service": true,
    "Wi-Fi": "free",
    "Caters": false,
    "Good For": {
        "dessert": false,
        "latenight": false,
        "lunch": false,
        "dinner": false,
        "brunch": false,
        "breakfast": false
    },
    "Parking": {
        "garage": false,
        "street": false,
        "validated": false,
        "lot": true,
        "valet": false
    },
    "Has TV": true,
    "Good For Groups": true
},
"type": "business"

Tôi đang cố gắng lặp qua một danh sách các đối tượng xóa một phần tử khỏi mỗi đối tượng. Mỗi đối tượng là một dòng mới. Sau đó, tôi đang cố gắng lưu tệp mới như không có phần tử có trong các đối tượng. Tôi biết đây có lẽ là một nhiệm vụ đơn giản nhưng dường như tôi không thể có được công việc này. Sẽ biết ơn nếu ai đó có thể đưa ra một bàn tay. Cảm ơn.

}

import json

with open('data.json') as data_file:
data = json.load(data_file)
for element in data: 
        del element['hours']

Tôi cần xóa thông tin có trong phần tử giờ tuy nhiên thông tin không phải lúc nào cũng giống nhau. Một số chứa tất cả các ngày và một số chỉ chứa thông tin một hoặc hai ngày. Mã mà tôi đã cố gắng sử dụng là Pyton mà tôi đã tìm kiếm trong suốt cả ngày để sử dụng với vấn đề của mình. Tôi không có kỹ năng với Python. Bất kỳ trợ giúp sẽ được đánh giá cao.
TypeError: ‘unicode’ object does not support item deletion

Trả lời 1:

Xin lỗi chỉ để thêm lỗi tôi gặp phải khi chạy mã là kiểu

import json

with open('data.json', 'r') as data_file:
    data = json.load(data_file)

for element in data:
    element.pop('hours', None)

with open('data.json', 'w') as data_file:
    data = json.dump(data, data_file)

Hãy giả sử bạn muốn ghi đè cùng một tệp:

dict.pop(, not_found=None) có lẽ là những gì bạn đang tìm kiếm, nếu tôi hiểu yêu cầu của bạn. Bởi vì nó sẽ loại bỏ khóa hours nếu có và sẽ không thất bại nếu không có.

Tuy nhiên, tôi không chắc chắn tôi hiểu tại sao nó tạo ra sự khác biệt cho bạn liệu khóa giờ có chứa một số ngày hay không, bởi vì bạn chỉ muốn loại bỏ toàn bộ cặp khóa / giá trị, phải không?

import json

with open('data.json') as data_file:
    data = json.load(data_file)

for element in data:
    if 'hours' in element:
        del element['hours']

with open('data.json', 'w') as data_file:
    data = json.dump(data, data_file)

Bây giờ, nếu bạn thực sự muốn sử dụng

jsonFile = open('./dataNewJson.json', 'r')
    values = json.load(jsonFile)
    for element in values:
        if 'data' in element:
            del element['data']
            print("check")
        elif 'BriefInfo' in element:
            del element['BriefInfo']
        elif 'UserName' in element:
            print("SSS")
            del element['UserName']
    values = dumps(values, indent = 2)
0 thay vì
jsonFile = open('./dataNewJson.json', 'r')
    values = json.load(jsonFile)
    for element in values:
        if 'data' in element:
            del element['data']
            print("check")
        elif 'BriefInfo' in element:
            del element['BriefInfo']
        elif 'UserName' in element:
            print("SSS")
            del element['UserName']
    values = dumps(values, indent = 2)
1, đây là cách bạn có thể làm cho mã của mình hoạt động:

So, as you can see, I added the code to write the data back to the file.
If you want to write it to another file, just change the filename in the second open statement.

Chỉnh sửa vì vậy, như bạn có thể thấy, tôi đã thêm mã để ghi lại dữ liệu vào tệp. Nếu bạn muốn viết nó vào một tệp khác, chỉ cần thay đổi tên tệp trong câu lệnh mở thứ hai.

Tôi đã phải thay đổi thụt lề, như bạn có thể nhận thấy, để tệp đã được đóng trong giai đoạn làm sạch dữ liệu và có thể được ghi đè vào cuối.ONLY within that context. It means that as soon as the indentation of the

jsonFile = open('./dataNewJson.json', 'r')
    values = json.load(jsonFile)
    for element in values:
        if 'data' in element:
            del element['data']
            print("check")
        elif 'BriefInfo' in element:
            del element['BriefInfo']
        elif 'UserName' in element:
            print("SSS")
            del element['UserName']
    values = dumps(values, indent = 2)
2 block ends, the file gets closed and the context ends, along with the file descriptor which becomes invalid / obsolete.

jsonFile = open('./dataNewJson.json', 'r')
    values = json.load(jsonFile)
    for element in values:
        if 'data' in element:
            del element['data']
            print("check")
        elif 'BriefInfo' in element:
            del element['BriefInfo']
        elif 'UserName' in element:
            print("SSS")
            del element['UserName']
    values = dumps(values, indent = 2)
2 là cái được gọi là Trình quản lý ngữ cảnh, bất cứ điều gì nó cung cấp (ở đây, bộ mô tả tệp data_file) chỉ có sẵn trong bối cảnh đó. Điều đó có nghĩa là ngay khi phần thụt của khối
jsonFile = open('./dataNewJson.json', 'r')
    values = json.load(jsonFile)
    for element in values:
        if 'data' in element:
            del element['data']
            print("check")
        elif 'BriefInfo' in element:
            del element['BriefInfo']
        elif 'UserName' in element:
            print("SSS")
            del element['UserName']
    values = dumps(values, indent = 2)
2 kết thúc, tệp sẽ được đóng và bối cảnh kết thúc, cùng với bộ mô tả tệp trở nên không hợp lệ / lỗi thời.

Không cần phải làm điều này, bạn sẽ không thể mở tệp ở chế độ ghi và lấy một mô tả tệp mới để ghi vào.

Tôi hy vọng nó rất rõ ràng

Chỉnh sửa thứ hai

with open('dest_file.json', 'w') as dest_file:
    with open('source_file.json', 'r') as source_file:
        for line in source_file:
            element = json.loads(line.strip())
            if 'hours' in element:
                del element['hours']
            dest_file.write(json.dumps(element))

Trả lời #2:

with open('writing_file.json', 'w') as w:
    with open('reading_file.json', 'r') as r:
        for line in r:
            element = json.loads(line.strip())
            if 'hours' in element:
                del element['hours']
            w.write(json.dumps(element))

Lần này, có vẻ như rõ ràng rằng bạn cần phải làm điều này:

Làm cách nào để xóa một trường khỏi tệp JSON?

Đây là phương pháp tôi sử dụng ..var json = { 'name': John Doe, 'nickname': Johnny } var key = "name"; delete json[key];

Làm cách nào để loại bỏ một thuộc tính khỏi đối tượng JSON?

Làm thế nào để bạn chỉnh sửa một đối tượng JSON trong Python?.

Làm thế nào để bạn xóa một cặp giá trị khóa khỏi đối tượng JSON?

Nội phân chính

Tôi đã viết một số mã để xóa khóa "dữ liệu" và "tên người dùng" bằng các giá trị của chúng nhưng tôi chỉ có thể xóa dữ liệu và giá trị của nó không phải cho "Tên người dùng". Ai đó có thể cho tôi một số gợi ý để sửa lỗi này không?

Làm thế nào để bạn chỉnh sửa một đối tượng JSON trong Python?

Làm thế nào để bạn xóa một cặp giá trị khóa khỏi đối tượng JSON?.

Nội phân chính

Tôi đã viết một số mã để xóa khóa "dữ liệu" và "tên người dùng" bằng các giá trị của chúng nhưng tôi chỉ có thể xóa dữ liệu và giá trị của nó không phải cho "Tên người dùng". Ai đó có thể cho tôi một số gợi ý để sửa lỗi này không?

2. Ở đây là mã để thực hiện. Đầu tiên chỉ cần mở tệp JSON và tải dữ liệu. Sau đó, để kiểm tra xem khóa "dữ liệu" và "tên người dùng" có nằm trong đó hay không. Nếu có, hãy xóa các khóa này và giá trị của chúng.

print(json_object).

Câu hỏi :

Xóa một phần tử trong đối tượng JSON

Tôi đang cố gắng lặp qua một danh sách các đối tượng xóa một phần tử khỏi mỗi đối tượng. Mỗi đối tượng là một dòng mới. Sau đó, tôi đang cố gắng lưu tệp mới như không có phần tử có trong các đối tượng. Tôi biết đây có lẽ là một nhiệm vụ đơn giản nhưng dường như tôi không thể có được công việc này. Sẽ biết ơn nếu ai đó có thể đưa ra một bàn tay. Cảm ơn.

2. Ở đây là mã để thực hiện. Đầu tiên chỉ cần mở tệp JSON và tải dữ liệu. Sau đó, để kiểm tra xem khóa "dữ liệu" và "tên người dùng" có nằm trong đó hay không. Nếu có, hãy xóa các khóa này và giá trị của chúng.

Làm thế nào để bạn xóa một cặp giá trị khóa khỏi đối tượng JSON?

Nội phân chínhuse the delete operator.