【问题标题】:Modifying JSON key values in Python在 Python 中修改 JSON 键值
【发布时间】:2015-11-08 15:31:10
【问题描述】:

我正在尝试加载 JSON 文件并更改特定键值,然后将更新的条目保存到新文件中。此 JSON 文件有许多具有相同格式的条目。这是我来这里之前最远的尝试,但是它不会保存新值。

我错过了什么?

#!/usr/bin/python
import simplejson as json
import names

in_file = open('Names.json', 'r')
out_file = open('Names_new.json','w')

data_file = in_file.read()
data = json.loads(data_file)

for x in data:
    nickname = x['nickname']
    newname = names.get_first_name()    
    nickname = newname

out_file.write(json.dumps(data))
out_file.close()

【问题讨论】:

    标签: python json


    【解决方案1】:

    问题是当您想将newname 分配给它时,您没有更改x['nickname']。相反,您只修改了变量nickname

    尝试直接分配x['nickname']

    for x in data:
        x['nickname'] = names.get_first_name()
    

    【讨论】:

      【解决方案2】:

      您只是将旧的 JSON 数据再次转储到新文件中,而不修改其内容。

      相反,您应该使用newname 更改文件的内容:

      #!/usr/bin/python
      import simplejson as json
      import names
      
      in_file = open('Names.json', 'r')
      out_file = open('Names_new.json','w')
      
      data_file = in_file.read()
      data = json.loads(data_file)
      
      for x in data:
          newname = names.get_first_name()    
          x['nickname'] = newname
      
      out_file.write(json.dumps(data))
      out_file.close()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-07
        • 1970-01-01
        • 1970-01-01
        • 2017-07-31
        • 2019-07-18
        相关资源
        最近更新 更多