在Python中修改JSON键值

时间:2015-11-08 06:02:51

标签: python json

我正在尝试加载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()

2 个答案:

答案 0 :(得分:1)

问题是,当您想要为其分配newname时,您没有更改x ['昵称']。相反,您只修改了变量nickname

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

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

答案 1 :(得分:1)

您只是将旧的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()