Python 使unicode成为存储在变量中的字符串,然后使用telepot发送它

Python 使unicode成为存储在变量中的字符串,然后使用telepot发送它,python,python-3.x,unicode,python-unicode,Python,Python 3.x,Unicode,Python Unicode,导言 我正在用telepot和selenium创建一个scraper机器人,当我得到需要用telepot机器人发送的文本数据时,它是无法读取的,因为它包含格式错误的unicode转义字符(表情符号),如: "hi I like this emoji: \\u265B\\u2655" 输出 "hi I like this emoji: \u265B\u2655" "hi I like this emoji: ♕♛" 所需输出 &qu

导言

我正在用telepot和selenium创建一个scraper机器人,当我得到需要用telepot机器人发送的文本数据时,它是无法读取的,因为它包含格式错误的unicode转义字符(表情符号),如:

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

"hi I like this emoji: \u265B\u2655"
"hi I like this emoji: ♕♛"
所需输出

"hi I like this emoji: \u265B\u2655"
"hi I like this emoji: ♕♛"
在我的例子中,我不能使用
u“嗨,我喜欢这个表情符号:\u265B\u2655”
,因为我的字符串存储在使用selenium和regex获得的变量中

我尝试过的

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我使用了
json.loads(“嗨,我喜欢这个表情:\\u265B\\u2655”)
我得到了这个

引发异常

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

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

编辑

"hi I like this emoji: \u265B\u2655"
"hi I like this emoji: ♕♛"
我试过他:

json.loads('"' + mystring + '"')
我得到:

json.decoder.JSONDecodeError: Invalid control character at: line 1 column 23 (char 22)
如评论中所述,这是打印(repr(mystring))的结果。:


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

导入json >>>s='La Spezia\\ud83d\\udccd\\n\\ud83d\\udcdaLiceo Scientifico Sportivo A.Pacinotti\\ud83c\\udfeb\\nTalian FENCER\\ud83c\\uddee\\ud83c\\uddf9\\ud83e\\udd3a SPCS\\电低音\\ud83c\\udfb8\\ud83c\\udfb6\\n书本\\ud83d\\udcd6\\n2a T(埃斯科尼)\\ud83d\\ud0d\\ud83c\\udf93' >>>打印(json.loads(f'{s}'))
La SpeziaYou可能只是在看JSON编码?!但是如果没有更多的细节,这一点还不清楚。
json.loads(“‘嗨,我喜欢这个表情:\\u265B\\u2655’”)
→ '嗨,我喜欢这个表情符号:♛♕'…
json.loads(“…”)
json.loads(“…”)
之间有很大区别。如果您在某处有一个JSON值,该值应该包含双引号。如果将该JSON值放入Python字符串文字中,则这些引号必须包含在Python字符串文字中,即:
s='“\\u265B…”
以表示JSON值
“\u265B…”
。这应该是完美的JSON可解码的。不清楚您到底在处理什么,也不清楚您是因为将有效的JSON值错误地复制到Python源代码中进行测试而失败,还是因为其他原因……您可能不想首先使用正则表达式来提取此字符串(您可以处理转义引号吗?)工作…?!是的,我像@deceze说的那样做了