我正在尝试将新数据写入现有的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}}}
答案 0 :(得分:2)
像这样更改updateUsers
:
def updateUsers(chan):
j = urllib2.urlopen('http://tmi.twitch.tv/group/user/' + chan + '/chatters')
j_obj = json.load(j)
with open('dat.dat') as data_file:
data = json.load(data_file)
for dat in data['users']:
if dat in j_obj['chatters']['moderators']:
data['users'][dat]['Points'] += 50
# write to file
with open('dat.dat', 'w') as out_file:
json.dump(data, out_file)
答案 1 :(得分:0)
您可以找到类似的问题here。 使用
data['users'][dat]['Points']=50
更改积分值。您正在创建一个新变量points=data['users'][dat]['Points']
并更改该变量的值,而不是数据中'points'的值