在Python中向json文件添加新条目

在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'

我有一个可以正常工作的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', '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,带引号的那个