在Python字典中操作列表



我有这个JSON文件:

{"809849410283372605": {"wallet": 0, "submitted": [""], "bank": 0}}

我正在尝试将字符串放入[""].

我试过了:

users[str(user.id)]["submitted"] + 'earnings'
with open("mainbank.json",'w') as f:
json.dump(users,f)

但它从来没有成功过。

您的实际代码

users[str(user.id)]["submitted"] + 'earnings'
with open("mainbank.json",'w') as f:
json.dump(users,f)

不起作用,因为它没有更新任何内容。试着

# I suppose the + sign is to update the empty string ""
users[str(user.id)]["submitted"].append('earnings')
with open("mainbank.json",'w') as f:
json.dump(users,f)

如果您碰巧需要将提交的信息填写为列表,请尝试:

# with an empty list
{"809849410283372605": {"wallet": 0, "submitted": [], "bank": 0}}
users[str(user.id)]["submitted"].append('earnings')
with open("mainbank.json",'w') as f:
json.dump(users,f)

如果需要更改""空字符串的值只需使用:

users[str(user.id)]["submitted"][0] = 'earnings'
with open("mainbank.json",'w') as f:
json.dump(users,f)

字符串连接与+只是创建一个新的字符串,但不保存它的任何地方。我认为,你正在寻找的是append到那个列表:

users[str(user.id)]["submitted"].append("earnings")

或者如果你想替换一个空值的列表,你可以使用

# replace list with just a string
users[str(user.id)]["submitted"] = "earnings"
# replace list with other list
users[str(user.id)]["submitted"] = ["earnings"]

如果你只是想添加一个项目到列表的那一部分,使用.append(),就像下面的

users = {"809849410283372605": {"wallet": 0, "submitted": [""], "bank": 0}}
users["809849410283372605"]['submitted'].append("earnings")
print(users)
>{'809849410283372605': {'wallet': 0, 'submitted': ['', 'earnings'], 'bank': 0}}

如果您想将空引号更改为其他内容,请使用

users = {"809849410283372605": {"wallet": 0, "submitted": [""], "bank": 0}}
users["809849410283372605"]['submitted'][0] = "earnings"
print(users)
{'809849410283372605': {'wallet': 0, 'submitted': ['earnings'], 'bank': 0}}

你可以使用这样的代码,它会替换你的" character

users[str(user.id)]['submitted']=['Earning' if x== " else x for x in users[str(user.id)]['submitted']]

最新更新