【问题标题】:How do I replace the key in a JSON file?如何替换 JSON 文件中的密钥?
【发布时间】:2022-02-13 00:54:58
【问题描述】:

您能告诉我如何替换JSON file 中的key 吗?

JSON 文件结构:

[
   {
      "id" : "365",
      "credits" : [ {
        "login" : "user1",
        "password" : "pa$$w0rd"
      } ]
    }, {
      "id" : "366",
      "credits" : [ {
        "Login" : "user2",
        "password" : "pa$$w0rd"
      } ]
    }
]

login 键必须是同一类型,即在整个文档中有一个register,所有Login 键都变为login

这是从JSON file进一步分析和下载信息所必需的。

with open ("test.json", "r") as read_file_json:
    data_json = json.load(read_file_json)
    for n in range(len(data_json)):
        id = (data_json[n]['id'])
        id = str(id)
        for credits in data_json[n]["credits"]:
            login = credits["login"]

非常感谢!

【问题讨论】:

  • 可以在最后一行试一试吗credits[newKey]=credits.pop(old_key)
  • 如果您想用login 替换Login,将json 文件作为字符串加载并使用str.replace() 将是最简单的解决方案。除非您有一个名为 Login 的用户。 :-)
  • 这能回答你的问题吗? Python Edit/Rename Key Names in .json
  • 问题被标记为重复:stackoverflow.com/questions/49777924/…。试着看看 json_data.replace()

标签: python json python-3.x


【解决方案1】:

无需使用 id 键。它没有任何目的。您只需要:

import json

with open ('test.json', encoding='utf-8') as read_file_json:
    js = json.load(read_file_json)
    for d in js:
        for c in d['credits']:
            if (v := c.get('Login', None)) is not None:
                c['login'] = v
                del c['Login']
    print(json.dumps(js, indent=2))

【讨论】:

    猜你喜欢
    • 2017-08-07
    • 2011-10-11
    • 2021-08-13
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    相关资源
    最近更新 更多