如何在json文件中查找和替换值的一部分

新手上路,请多包涵

我有一个 json 文件,我在 python 中用作字典。 json 文件真的很长,有 10k+ 条记录。我需要用“id”的值替换“iscategorical”中的 $home 部分。进行更改后,我想保存此文件,以便我可以再次将其用作字典。感谢您的帮助。这是一个示例:

 {
"maps": [
    {
        "id": "xyzp",
        "iscategorical": "/u/$home/app/home"
    },
    {
        "id": "trtn",
        "iscategorical": "/u/app/$home/user"
    }
]}

原文由 Mona 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

我了解到您能够成功加载文件,而您要做的就是替换字符串并将结构再次保存到文件中。

为此,我们可以遍历数据中的字典列表,修改 item['iscategorical'] 的值,将 $home 的值替换为—99de2357be item['id']

然后我们可以将修改后的结构转储回(一个新的)json 文件。

 import json
with open('data.json') as f:
    data = json.load(f)

for item in data['maps']:
    item['iscategorical'] = item['iscategorical'].replace('$home', item['id'])

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

原文由 sal 发布,翻译遵循 CC BY-SA 4.0 许可协议

您的问题似乎类似于 - Parsing values from a JSON file? .但是对于您的情况,下面的代码片段应该有效。

 import json

with open('idata.json') as infile:
  data = json.load(infile)

for elem in data["maps"]:
  elem['iscategorical']=elem['iscategorical'].replace('$home',elem['id'])

with open('odata.json', 'w') as outfile:
    json.dump(data, outfile)

原文由 Jai 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题