如何仅更改 repl.it 数据库中列表的一个值?
How to change only one value of a list from repl.it database?
我正在尝试在 repl.it 上编写一个 Discord 游戏机器人,我使用它的数据库来存储玩家的数据。
所以我现在正在发出命令让玩家重命名自己,但后来出现了问题。以下几行有效,但涉及影响存储每个玩家数据的整个 player_data
列表的新值:
renamer = player_id.index(message.author.id)
new_name = message.content[len(prefix)+7:]
player_data = db["player_data"]
player_data[renamer][0] = new_name
db["player_data"] = player_data
await message.channel.send('You successfully renamed yourself into '+new_name+'.')
所以我担心如果有人开始玩而另一个人正在更改他的昵称,'old' player_data
会覆盖新的,其中有新玩家的数据。
我想要类似于这些行的内容(它们不起作用)来仅更改相关玩家的数据:
renamer = player_id.index(message.author.id)
new_name = message.content[len(prefix)+7:]
db["player_data"][renamer][0] = new_name
await message.channel.send('You successfully renamed yourself into '+new_name+'.')
因为我可以在 repl.it 数据库中创建许多密钥,所以我决定为每个玩家创建一个密钥,并且这些行无需获取其他玩家的数据即可工作:
new_name = message.content[len(prefix)+7:]
player_data = db["player_data"+str(message.author.id)]
player_data[0] = new_name
db["player_data"+str(message.author.id)] = player_data
await message.channel.send('You successfully renamed yourself into '+new_name+'.')
如果有人对最初的问题有解决方案,我仍然很感兴趣。
我正在尝试在 repl.it 上编写一个 Discord 游戏机器人,我使用它的数据库来存储玩家的数据。
所以我现在正在发出命令让玩家重命名自己,但后来出现了问题。以下几行有效,但涉及影响存储每个玩家数据的整个 player_data
列表的新值:
renamer = player_id.index(message.author.id)
new_name = message.content[len(prefix)+7:]
player_data = db["player_data"]
player_data[renamer][0] = new_name
db["player_data"] = player_data
await message.channel.send('You successfully renamed yourself into '+new_name+'.')
所以我担心如果有人开始玩而另一个人正在更改他的昵称,'old' player_data
会覆盖新的,其中有新玩家的数据。
我想要类似于这些行的内容(它们不起作用)来仅更改相关玩家的数据:
renamer = player_id.index(message.author.id)
new_name = message.content[len(prefix)+7:]
db["player_data"][renamer][0] = new_name
await message.channel.send('You successfully renamed yourself into '+new_name+'.')
因为我可以在 repl.it 数据库中创建许多密钥,所以我决定为每个玩家创建一个密钥,并且这些行无需获取其他玩家的数据即可工作:
new_name = message.content[len(prefix)+7:]
player_data = db["player_data"+str(message.author.id)]
player_data[0] = new_name
db["player_data"+str(message.author.id)] = player_data
await message.channel.send('You successfully renamed yourself into '+new_name+'.')
如果有人对最初的问题有解决方案,我仍然很感兴趣。