Hướng dẫn python json remove property - python json loại bỏ thuộc tính

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

  • 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"
  }
]

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.

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]

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.

{
"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 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.

import json

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

Xin lỗi chỉ để thêm lỗi tôi gặp phải khi chạy mã là kiểu
TypeError: ‘unicode’ object does not support item deletion

Trả lời 1:

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

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]

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?

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:

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]

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.
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.

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.

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.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.

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

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

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]]

Đây là phương pháp tôi sử dụng ..

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

Tuy nhiên, để xóa một yếu tố: var json = {'name': john doe, 'biệt danh': johnny} var key = "name"; Xóa json [khóa];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?

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.

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?.

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.

Câu hỏi :

print[json_object].

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.

}

Câu hỏi :

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

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?use the delete operator.

Bài Viết Liên Quan

Chủ Đề