2015-11-08 5 views
0

Я пытаюсь загрузить файл JSON и изменить определенные значения ключей, а затем сохранить обновленные записи в новый файл. Этот JSON-файл имеет много записей в одном формате. Это моя самая дальнейшая попытка, прежде чем приходить сюда, однако она не сохраняет новые ценности.Изменение значений ключа JSON в Python

Что мне не хватает?

#!/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

Проблема заключается в том, что вы не изменили х [ «имя»], когда вы хотите назначить newname к нему. Вместо этого вы только изменили переменную nickname.

Try присваивающей x['nickname'] непосредственно:

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

огромная, благодаря работал как шарм – user10847

0

Вы просто демпинг старые данные 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() 
Смежные вопросы