Python如何将unicode转换为中文

简介: 今天碰到一个很有意思的问题,需要将普通的 Unicode字符串转换为 Unicode编码的字符串

今天碰到一个很有意思的问题,需要将普通的 Unicode字符串转换为 Unicode编码的字符串,
如下:
将 \u9500\u552e 转化为 \u9500\u552e 也就是销售两个字。

乍一看感觉挺简单的,用 re 库将前面的反斜杠去掉即可,但是在替换的过程中会抛出如下错误:
Traceback (most recent call last):
File "<pyshell#15>", line 1, in

re.sub(r"(\)\u", r'', t)

File "D:\Python36\lib\re.py", line 191, in sub

return _compile(pattern, flags).sub(repl, string, count)

File "D:\Python36\lib\re.py", line 301, in _compile

p = sre_compile.compile(pattern, flags)

File "D:\Python36\lib\sre_compile.py", line 562, in compile

p = sre_parse.parse(p, flags)

File "D:\Python36\lib\sre_parse.py", line 855, in parse

p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)

File "D:\Python36\lib\sre_parse.py", line 416, in _parse_sub

not nested and not items))

File "D:\Python36\lib\sre_parse.py", line 765, in _parse

p = _parse_sub(source, state, sub_verbose, nested + 1)

File "D:\Python36\lib\sre_parse.py", line 416, in _parse_sub

not nested and not items))

File "D:\Python36\lib\sre_parse.py", line 502, in _parse

code = _escape(source, this, state)

File "D:\Python36\lib\sre_parse.py", line 362, in _escape

raise source.error("incomplete escape %s" % escape, len(escape))

sre_constants.error: incomplete escape \u at position 3
大概意思就是去掉前面的反写杠之后剩下的 \u 不能组成完整的字符。

到这里问题好像有点难以解决了,这时候我们会放弃吗?当然不会。
于是我到谷歌上搜了一下,发现还真有人碰到过这个问题,解决方法也是十分的巧妙。

竟然还可以使用 json 库的 loads 方法 ...

解决方法如下:

import json
s = '\\u9500\\u552e'
print(json.loads(f'"{s}"'))

另外:python3 将字符串unicode转换为中文

得到的文本打印出来是“\uxxxx”的字符串格式,在python3中使用text.decode('unicode_escape')会报错:‘str' object has no attribute 'decode'

正确的姿势是:

text.encode('utf-8').decode("unicode_escape")

还有一个就是在爬取网站时,最终得到的是list内容,编码为unicode,想让其转换为汉字并输出。

需要提取的为下图中unicode部分:
image.png
保存为列表,然后使用for循环:

text为获取的网页。

pat = '"group": {"text": "(.*?)"'
text_list = re.compile(pat).findall(text)
for i in text_list:
 print(i.encode('latin-1').decode('unicode_escape'))

输出结果:
image.png

相关文章
|
Python
【python实战】top3 英尺转换为米
【python实战】top3 英尺转换为米
345 0
【python实战】top3 英尺转换为米
|
4月前
|
编解码 开发者 Python
【Python】已解决:SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: t
【Python】已解决:SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: t
431 0
|
5月前
|
自然语言处理 Python
Python 中的编码与解码字符集与 Unicode 的详解
【6月更文挑战第10天】Python编程中,理解字符编码(如ASCII、UTF-8)和Unicode至关重要,它们关乎文本数据的正确处理。编码是字符转字节,解码则相反。UTF-8能表示几乎所有字符,适合多语言。Unicode为全球字符提供唯一编码。处理不同源文本时,需注意编码一致性,否则可能产生乱码。Python支持Unicode,但错误的编码解码操作可能导致问题。要确保程序处理文本的正确性,需选合适编码方案并保持编码一致性。
76 0
|
6月前
|
编解码 Python Windows
Python文件路径报错SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 2-3: t
Python文件路径报错SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 2-3: t
|
Linux Python Windows
Python | Python学习之unicode和utf8
Python | Python学习之unicode和utf8
123 0
9.从入门到精通:Python 字符串格式化,三引号,Unicode 字符串
9.从入门到精通:Python 字符串格式化,三引号,Unicode 字符串
|
存储
[oeasy]python0133_[趣味拓展]好玩的unicode字符_另类字符_上下颠倒英文字符
[oeasy]python0133_[趣味拓展]好玩的unicode字符_另类字符_上下颠倒英文字符
966 0
[oeasy]python0133_[趣味拓展]好玩的unicode字符_另类字符_上下颠倒英文字符
|
JSON PHP 数据格式
【python】or【php】网页中字符编码转换,将反斜杠u \u字符串转为unicode/utf8
【python】or【php】网页中字符编码转换,将反斜杠u \u字符串转为unicode/utf8
186 0
|
JSON 数据可视化 JavaScript
python--转换wrf输出的风场数据为网页可视化的json格式
python--转换wrf输出的风场数据为网页可视化的json格式
python--转换wrf输出的风场数据为网页可视化的json格式
如何解决 在vscode中运行python代码在无法print中文的问题
如何解决 在vscode中运行python代码在无法print中文的问题
如何解决 在vscode中运行python代码在无法print中文的问题