我如何解释python字符串中的微笑?

时间:2016-11-21 13:28:22

标签: python bots vk

好吧,我回来在python上为vk写一个机器人。 它显示了生命的第一个迹象和第一个障碍。

其中一个是微笑,可能会在私人消息或聊天中到达。 我有一个函数,使用我自己的函数和json库将每个传入的消息反汇编成字符串。

#getting a message

def getmessage(out, count):
    payload['out']=str(out)
    payload['count']=str(count)
    return json.loads(requests.get(api+'messages.get', payload).text)    ['response']['items'][0]

#disassembling a message

def messageanalysis(message):
    m=message
    mes={
    'date':m['date'],
    'id':m['id'],
    'user_id':m['user_id'],
    'body':m['body']}
    return mes

那么,然后我.split()字符串mes [' body']并将其中的每个单词与一组模板进行比较,并根据结果决定要回答的内容。

刚才我收到私信中的笑容,程序崩溃了,不知道如何处理.png文件。有趣的是,与在vk服务器接收的对象" message"中有自己的参数的常规附件不同,微笑直接集成到消息正文中。我应该做些什么来至少防止程序因为微笑而崩溃,或者哪个更好,让它识别出微笑被发送了?

====== 错误:

Traceback (most recent call last):
  File "C:\BOT\Body.py", line 24, in <module>
    print('User_id: '+str(m['user_id'])+'\nMessage: '+str(m['body'])+'\n')
  File "C:\Users\Арсений\AppData\Local\Programs\Python\Python35-32    \lib\idlelib\PyShell.py", line 1344, in write
    return self.shell.write(s, self.tags)
UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 28-28:     Non-BMP character not supported in Tk

1 个答案:

答案 0 :(得分:0)

您问题中的代码不是问题。您正在使用IDLE(基于错误消息),该IDLE不支持在Unicode的“基本多语言平面”之外显示字符(表情符号在BMP之外)。您应该切换到使用命令提示符,或在打印前将非BMP字符替换为其他字符。