【发布时间】:2018-07-02 23:35:33
【问题描述】:
我正在尝试使用 python 脚本读取和写入 json 文件(我已将此 python 块嵌入到 shell 脚本中)
test.json
{ "environments": ["dev", "qa", "load", "prod"], "region": ["asia", "europe", "americas", "asia-pacific"], "product": ["mobile", "internet", "kiosk", "branch"], "ID": ["mobile:111", "internet:222", "kiosk:333", "branch:444"] }
我正在尝试添加地区(英国),在此之前我想检查并添加它是否在列表中不可用。 下面是我的 python 代码,我可以更新值
reg_val="uk"
a_dict = {}
try:
with open('test.json') as data_file:
data = json.load(data_file)
temp_list = []
for dicObj in data["region"]:
temp_list.append(dicObj)
temp_list.append(reg_val)
data["region"] = temp_list
a_dict["region"] = data["region"]
with open('test.json','w') as f:
f.write(json.dumps(a_dict, indent=4, sort_keys=True, encoding="utf-8"))
except IOError as io:
print "ERROR: ", io
我能够更新 json 文件,但它删除了其他列表。我看到的输出是
{
"region": [
"asia",
"europe",
"americas",
"asia-pacific",
"uk"
]
}
【问题讨论】:
-
为什么不把
data写回文件而不是a_dict,这是一个只包含区域的新字典。