在Python中向json文件添加新条目
我有一个可以正常工作的json文件,我在discord上有一个bot命令,它显示一个随机条目 我想写的下一个命令是关于如何添加一个新条目,这样我就不需要通过Atom手动执行了在Python中向json文件添加新条目,python,json,discord.py,Python,Json,Discord.py,我有一个可以正常工作的json文件,我在discord上有一个bot命令,它显示一个随机条目 我想写的下一个命令是关于如何添加一个新条目,这样我就不需要通过Atom手动执行了 async def addquote(self, ctx, message): with open('quotes.json','r') as f: quote = json.load(f) #quote[str(message)] = with open('quotes.json'
async def addquote(self, ctx, message):
with open('quotes.json','r') as f:
quote = json.load(f)
#quote[str(message)] =
with open('quotes.json', 'w') as f:
json.dump(quote, f)
await ctx.send('Quote added.')
我认为,这句话是我最挣扎的地方
下面是jsonfile的屏幕截图,它看起来如何。我想用这个函数添加更多的“引号”
非常感谢这些代码在我这边起了作用:
导入json
将open('quotes.json','r')作为f:
quote=json.load(f)
打印(报价)
quote['quote'].追加({
“引号”:“测试”
})
将open('preficess.json','w')作为f:
json.dump(引号,f)
使用quotes.json:
{"Quote":[]}
和prefices.json:
{"Quote": [{"quote": "test"}]}
这些代码在我这边起作用:
导入json
将open('quotes.json','r')作为f:
quote=json.load(f)
打印(报价)
quote['quote'].追加({
“引号”:“测试”
})
将open('preficess.json','w')作为f:
json.dump(引号,f)
使用quotes.json:
{"Quote":[]}
和prefices.json:
{"Quote": [{"quote": "test"}]}
我通过在JSON中使用列表而不是字典解决了问题
async def addquote(self, ctx, *, message):
with open('quotes.json','r') as f:
quote = json.load(f)
quote.append(message)
with open('quotes.json', 'w') as f:
json.dump(quote, f)
await ctx.send('Quote added.')
quote.json被清除,内容仅为[]
然后写它就行了。我通过在JSON中使用列表而不是字典解决了我的问题
async def addquote(self, ctx, *, message):
with open('quotes.json','r') as f:
quote = json.load(f)
quote.append(message)
with open('quotes.json', 'w') as f:
json.dump(quote, f)
await ctx.send('Quote added.')
quote.json被清除,内容仅为[]
然后给它写信就行了。你好,萨米。我不懂Python,但另一个可能会帮助您。
quote['quote']=str(message)
works?@D.Seah您好谢谢您的帮助,我只是尝试了一下,但没有成功。代码运行时,它发送结束消息,但当您使用quote=json.load(f)
时,json文件不会被修改。什么是报价
?这是一个命令吗?
?你好,萨米。我不懂Python,但另一个可能会帮助您。quote['quote']=str(message)
works?@D.Seah您好谢谢您的帮助,我只是尝试了一下,但没有成功。代码运行时,它发送结束消息,但当您使用quote=json.load(f)
时,json文件不会被修改。什么是报价
?这是一个dict
?你的意思是quote['quote'].append({'quote':str(message)})
?不幸的是,它没有起到很好的作用,因为有一个打字错误。修正了。谢谢,我正在尝试你的方法。为什么我需要前缀.json<代码>以open('quotes.json','r')作为f:quote=json.load(f)quote['quote'])追加({'quote':“test”})以open('prefises.json','w')作为f:json.dump(quote,f)等待ctx.send('quote added')我有这个,但无法让它运行到耶托勋爵那里,我只是注意到我自己也有这一行。抱歉那是深夜啊。我不知道为什么要把prefices.json放在这行。我只需要一个json,一个带有引号的json。你是说quote['quote'].append({'quote':str(message)})
?不幸的是,它没有起到很好的作用,因为有一个打字错误。修正了。谢谢,我正在尝试你的方法。为什么我需要前缀.json<代码>以open('quotes.json','r')作为f:quote=json.load(f)quote['quote'])追加({'quote':“test”})以open('prefises.json','w')作为f:json.dump(quote,f)等待ctx.send('quote added')我有这个,但无法让它运行到耶托勋爵那里,我只是注意到我自己也有这一行。抱歉那是深夜啊。我不知道为什么要把prefices.json放在这行。我只需要一个json,带引号的那个