【发布时间】:2016-02-11 20:34:39
【问题描述】:
我正在尝试将新数据写入现有 json,但没有成功。这是我当前的 json 文件 dat.dat:
{"users": {"tryhard_cupcake": {"Points": 0, "Time Joined": 9938}}}
以及我是如何解析它的:
def updateUsers(chan):
j = urllib2.urlopen('http://tmi.twitch.tv/group/user/' + chan + '/chatters')
j_obj = json.load(j)
with open('dat.dat', 'r+w') as data_file:
data = json.load(data_file)
for dat in data['users']:
if dat in j_obj['chatters']['moderators']:
points=data['users'][dat]['Points']
json.dump(points + 50, data_file)
updateUsers('tryhard_cupcake')
我希望为用户添加 50 分,但它只是在文件末尾附加了 50。输出是这样的:
{"users": {"tryhard_cupcake": {"Points": 0, "Time Joined": 9938}}}
50
如何向用户添加新数据并对其进行修改?我期待这个结果:
{"users": {"tryhard_cupcake": {"Points": 50, "Time Joined": 9938}}}
【问题讨论】:
-
json.dump所做的只是将您的参数写入data_file。你想要的是用data['users'][dat']['Points']+=50替换你的实际数据,然后用你的新字典覆盖你的整个 json 文件