python - 通过在 python 中添加新属性来更新 json 对象

标签 python json

我是 python 和 json 文件的新手,我有一个只有一个属性的 json 文件,我想通过添加新属性来更新文件中的每个对象,我的 json 文件如下所示:

[
{"marka": "تويوتا"},
{"marka": "شيفروليه"},
{"marka": "نيسان"}
]

我希望它是这样的:

[
{"marka": "تويوتا" , "tag" : "MANF"},
{"marka": "شيفروليه" , "tag" : "MANF"},
{"marka": "نيسان" , "tag" : "MANF"}
]

我尝试了这段代码,但它给了我一个错误:

with open("haraj_marka_arabic.json", "r") as jsonFile:
     data = json.load(jsonFile)

tmp = data["tag"]
data["tag"] = "MANF"

with open("haraj_marka_arabic.json", "w") as jsonFile:
    json.dump(data, jsonFile)

我遇到的错误是:

TypeError: list indices must be integers, not str

最佳答案

您的 JSON 是一个字典列表(用 Python 来说),每个字典都包含 'tag' 元素,因此您需要迭代这些列表项并将新值分配给此 '标签'键:

with open("haraj_marka_arabic.json", "r") as jsonFile:
     data = json.load(jsonFile)

for d in data:
    d["tag"] = "MANF"

with open("haraj_marka_arabic.json", "w") as jsonFile:
    json.dump(data, jsonFile)

关于python - 通过在 python 中添加新属性来更新 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61207589/

相关文章:

python - 如何授权/拒绝使用 Python 对 Windows 上的目录进行写访问?

python - 在 selenium 中切换和聚焦新打开的选项卡

python - 转json还是不转json

Python json.load JSONDecodeError : Extra data error when trying load multiple json dictionaries

json - 在 Laravel 5.4 中禁用请求验证重定向

python - 尝试使用Python从URL获取json数据

python - 如何使用xlwings pyhton更改范围列的数字格式

python - 使用 matplotlib 在折线图中查找不同形状的多个数组之间的值分布

json - 使用 jq 从 JSON 输出中提取特定字段

python - 打印字符串 "like"交互式解释器?