假设我有一个包含此内容的配置文件:
{"Mode":"Classic","Encoding":"UTF-8","Colors":3,"Blue":80,"Red":90,"Green":160,"Shortcuts":[],"protocol":"2.1"}
如何在不更改原始格式的情况下将文件中的"Red":90
更改为"Red":110
?
我尝试过使用configparser和configobj,但因为它们是为.INI文件而设计的,所以我无法弄清楚如何使用这个自定义配置文件。我也尝试拆分行搜索我想要更改的关键字值,但无法像以前那样保存文件。任何想法如何解决这个问题? (我是Python的新手)
答案 0 :(得分:1)
这看起来像json所以你可以:
import json
obj = json.load(open("/path/to/jsonfile","r"))
obj["Blue"] = 10
json.dump(obj,open("/path/to/mynewfile","w"))
但请注意,json dict没有订单。 因此,不保证元素的顺序(通常不需要)json列表虽然有订单。
答案 1 :(得分: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