2016-07-04 6 views
0

나는이 내용으로 구성 txt 파일이 가정 : 내가 원래 형식을 변경하지 않고 파일에 "Red":110"Red":90 같은 특정 값을 변경할 수있는 방법사용자 지정 구성 파일의 특정 값을 어떻게 업데이트 할 수 있습니까?

{"Mode":"Classic","Encoding":"UTF-8","Colors":3,"Blue":80,"Red":90,"Green":160,"Shortcuts":[],"protocol":"2.1"} 

?

configparser 및 configobj를 사용해 보았습니다. 그러나 .INI 파일 용으로 설계되었으므로이 사용자 지정 구성 파일로 작업하는 방법을 알아낼 수 없습니다. 나는 또한 변경하고 싶었던 키워드 마녀 가치를 찾는 선을 나눈 ㄴ다는 것을 시도하고 그러나 이전과 동일한 방법으로 파일을 저장할 수 없었다. 어떤 아이디어가 이것을 해결하는 방법?

import json 

obj = json.load(open("/path/to/jsonfile","r")) 
obj["Blue"] = 10 
json.dump(obj,open("/path/to/mynewfile","w")) 

을하지만, JSON의 DICT 주문을하지 않는 것을 알고 : 당신이 할 수 있도록

답변

1

이 JSON과 같습니다 (파이썬에서 아주 새로운 해요). 그래서 요소의 순서가 보장되지 않습니다 (일반적으로 필요하지 않습니다) json 목록에도 순서가 있습니다.

+0

이 적합한 솔루션입니다! 고마워요! – Alex

0

여기 당신이 그것을 할 수있는 방법은 다음과 같습니다

import json 

d = {} # store your data here 

with open('config.txt','r') as f: 
    d = json.loads(f.readline()) 

d['Red']=14 
d['Green']=15 
d['Blue']=20 
result = "{\"Mode\":\"%s\",\"Encoding\":\"%s\",\"Colors\":%s,\ 
     \"Blue\":%s,\"Red\":%s,\"Green\":%s,\"Shortcuts\":%s,\ 
     \"protocol\":\"%s\"}"%(d['Mode'],d['Encoding'],d['Colors'], 
           d['Blue'],d['Red'],d['Green'], 
           d['Shortcuts'],d['protocol']) 


with open('config.txt','w') as f: 
    f.write(result) 
    f.close() 

print result