将unicode作为存储在变量中的字符串,然后用telepot发送



简介

我正在创建一个带有telepot和selenium的scraper机器人程序,当我获得需要使用telepot机器人程序发送的文本数据时,它是不可读的,因为它包含错误格式的unicode-escape字符(表情符号),如:

"hi I like this emoji: \u265B\u2655"

输出

"hi I like this emoji: u265Bu2655"

所需输出

"hi I like this emoji: ♕♛"

在我的情况下,我不能使用u"hi I like this emoji: u265Bu2655",因为我的字符串存储在用selenium和regex 获得的变量中

我尝试过的

我用了json.loads("hi I like this emoji: \u265B\u2655"),我得到了这个

引发异常

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

问题

如何格式化此字符串以获得所需的输出?

编辑

我试过了:

json.loads('"' + mystring + '"')

我得到了:

json.decoder.JSONDecodeError: Invalid control character at: line 1 column 23 (char 22)

正如评论中所问的,这是print(repr(mystring)):的结果

'La Spezia\ud83d\udccd\n\ud83d\udcdaLiceo Scientifico Sportivo A. Pacinotti\ud83c\udfeb\nITALIAN FENCER \ud83c\uddee\ud83c\uddf9 \ud83e\udd3a SPCS!!\nELECTRIC BASS\ud83c\udfb8\ud83c\udfb6\nBooks \ud83d\udcd6\n2a T ( ESCONI ) \ud83d\ude0d \ud83c\udf93'

从您的最终编辑中,刮取的字符串看起来像是直接从某个JSON文件中提取的JSON编码字符串。JSON中的字符串需要双引号才能正确提取:

>>> import json
>>> s='La Spezia\ud83d\udccd\n\ud83d\udcdaLiceo Scientifico Sportivo A. Pacinotti\ud83c\udfeb\nITALIAN FENCER \ud83c\uddee\ud83c\uddf9 \ud83e\udd3a SPCS!!\nELECTRIC BASS\ud83c\udfb8\ud83c\udfb6\nBooks \ud83d\udcd6\n2a T ( ESCONI ) \ud83d\ude0d \ud83c\udf93'
>>> print(json.loads(f'"{s}"'))
La Spezia📍
📚Liceo Scientifico Sportivo A. Pacinotti🏫
ITALIAN FENCER 🇮🇹 🤺 SPCS!!
ELECTRIC BASS🎸🎶
Books 📖
2a T ( ESCONI ) 😍 🎓

相关内容

  • 没有找到相关文章

最新更新