我想更新json文件中的密钥名,文件中的对象如下所示:
[{"marka": "تويوتا" , "tag" : "MANF"},
{"marka": "شيفروليه" , "tag" : "MANF"},
{"marka": "نيسان" , "tag" : "MANF"}]
我想将键名“marka”更改为“entity”,因此它将是这样的:
[{"entity": "تويوتا" , "tag" : "MANF"},
{"entity": "شيفروليه" , "tag" : "MANF"},
{"entity": "نيسان" , "tag" : "MANF"}]
这是我尝试过的代码,但它给出了一个错误:
import json
with open("haraj_marka_arabic.json", "r") as jsonFile:
data = json.load(jsonFile)
for d in data:
d["entity"] = d.pop("marka")
with open("haraj_marka_arabic.json", "w") as jsonFile:
json.dump(data, jsonFile)
错误是:
File "marka.py", line 8, in d["entity"] = d.pop("marka") KeyError: 'marka'
您的问题在于输入数据
只需在for循环中添加一个调试记录器,您可以在其中更改键名并在更改键名之前打印
d.keys()
,如下所示->查看键是否实际上是
marka
而不是其他东西代码运行良好,问题在于输入数据。文件中的一个JSON没有
marka
键为了查找无效的JSON,您可以运行:
您可以将重命名设置为有条件的:
或设置默认值:
相关问题 更多 >
编程相关推荐