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