簡體   English   中英

Python將json對象附加到文件中,如果對象不存在,則進行保護

[英]Python append json object in file, guard if object does not exist

我正在使用python讀取json文件,然后在對象內添加數組,其形狀為

"additional_info": {"other_names": ["12.13"]

我將數組追加如下:

data["additional_info"]["other_names"].append('13.9')
with open('jsonfile', 'w') as f:
    json.dump(data, f)

我想設置一個保護措施,以檢查json文件中是否存在extra_info和other_names,如果不存在則創建它。 我將如何去做呢?

通常,我會使用嵌套的try-except檢查每個丟失的鍵或defaultdict ,但是在這種情況下,為簡單起見,我認為我會使用2 if語句:

if "additional_info" not in data:
    data["additional_info"] = {}
if "other_names" not in data["additional_info"]:
    data["additional_info"]["other_names"] = []

data["additional_info"]["other_names"].append('13.9')

with open('jsonfile', 'w') as f:
    json.dump(data, f)

兩個用例:

data = {}

if "additional_info" not in data:
    data["additional_info"] = {}
if "other_names" not in data["additional_info"]:
    data["additional_info"]["other_names"] = []

data["additional_info"]["other_names"].append('13.9')

print(data)
>> {'additional_info': {'other_names': ['13.9']}}

data = {"additional_info": {"other_names": ["12.13"]}}

if "additional_info" not in data:
    data["additional_info"] = {}
if "other_names" not in data["additional_info"]:
    data["additional_info"]["other_names"] = []

data["additional_info"]["other_names"].append('13.9')

print(data)
>> {'additional_info': {'other_names': ['12.13', '13.9']}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM