2015-11-08 525 views
0

我想加載JSON文件並更改特定的鍵值,然後將更新的條目保存到新文件。這個JSON文件具有許多具有相同格式的條目。這是我在來這裏之前最遠的嘗試,但它不能保存新的價值。在Python中修改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

的問題是,你沒有改變X [「綽號」]當你想要分配newname它。相反,您只修改變量nickname

嘗試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()