我刚开始使用discord.py,我想记录消息。不幸的是我遇到了编码问题。如果我将消息写入一个utf-8文件,我将得到特殊字符的unicode而不是字符本身。例如,如果我将áéőúű
写入聊天,我的bot会像这样将其记录到文件中:\u00e1\u00e9\u0151\u00fa\u0171
。我怎么能使它这样无论什么特殊字符有人键入我登录到文件的确切字符(因此预期的结果将是看到相同的字符在文件中,就像我是复制粘贴它从不和谐的文件)
因为这只是一个非常基本的“hello world”类型的代码,我将在这里复制完整的代码:
import json
import discord
import os
from time import gmtime, strftime
client = discord.Client()
@client.event
async def on_ready():
print(f'We have logged in as {client.user}')
@client.event
async def on_message(message):
userName = message.author.name + "#" + message.author.discriminator
writeMessageToFile(filePath='D:\Projects\Discord\messages.json', userName=userName, message=message.content)
def writeMessageToFile(filePath:str, userName:str, message:str):
messagesData = {}
timeStamp = strftime("%Y-%m-%d %H:%M:%S", gmtime())
if os.path.isfile(filePath):
with open(filePath, "r", encoding='utf_8') as jsonFile:
messagesData = json.load(jsonFile)
userMessages = messagesData.get(userName, None)
if userMessages is None:
messagesData[userName] = [{'TimeStamp': timeStamp, 'Message': message}]
else:
messagesData[userName].append({'TimeStamp': timeStamp, 'Message': message})
with open(filePath, "w", encoding='utf_8') as jsonFile:
json.dump(messagesData, jsonFile, indent=2)
if __name__ == '__main__':
token = 'XXXXXXXXXXXXXXXXXXXXXXXXX'
client.run(token)
提前谢谢你的帮助
我找到了解决办法,我不得不改变:
收件人:
现在输出是正确的
相关问题 更多 >
编程相关推荐