通常我会用嵌套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']}}
“我想成立一个卦rd来检查json文件中是否存在additional_info和other_names,如果它不存在,则创建它“这已经是默认行为。你的意思是如果它已经存在,你不想追加到列表中? – DeepSpace
如果我尝试在没有additional_info或other_names的文件上运行此操作,我得到一个关键错误 –