python中将\\uxxxx转换为Unicode字符串的方法


Posted in Python onSeptember 06, 2018

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

将 \\u9500\\u552e 转化为 \u9500\u552e 也就是 销售 。

乍一看感觉挺简单的,用 re 库将前面的反斜杠去掉即可,但是在替换的过程中会抛出如下错误:

Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    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}"'))

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

记录一个经常会遇到的问题:

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

正确的姿势是:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
linux下安装easy_install的方法
Feb 10 Python
python利用拉链法实现字典方法示例
Mar 25 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
python实现的二叉树定义与遍历算法实例
Jun 30 Python
浅谈flask源码之请求过程
Jul 26 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
Python设计模式之迭代器模式原理与用法实例分析
Jan 10 Python
python 求某条线上特定x值或y值的点坐标方法
Jul 09 Python
numpy:np.newaxis 实现将行向量转换成列向量
Nov 30 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
Jul 02 Python
浅谈Python里面None True False之间的区别
Jul 09 Python
python 自动识别并连接串口的实现
Jan 19 Python
Python json模块dumps、loads操作示例
Sep 06 #Python
Python 字符串换行的多种方式
Sep 06 #Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 #Python
Python使用try except处理程序异常的三种常用方法分析
Sep 05 #Python
python使用__slots__让你的代码更加节省内存
Sep 05 #Python
Python中__slots__属性介绍与基本使用方法
Sep 05 #Python
python使用xlrd和xlwt读写Excel文件的实例代码
Sep 05 #Python
You might like
PHP的分页功能
2007/03/21 PHP
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
Composer设置忽略版本匹配的方法
2016/04/27 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
javascript事件问题
2009/09/05 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
vue 登录滑动验证实现代码
2018/08/24 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
[01:12]DOTA2 2015年秋季互动指南
2015/11/10 DOTA
编写Python的web框架中的Model的教程
2015/04/29 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
详解python中各种文件打开模式
2020/01/19 Python
Python线程threading模块用法详解
2020/02/26 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
Python如何读取、写入CSV数据
2020/07/28 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
大专生自我鉴定范文
2013/10/01 职场文书
人事经理岗位职责
2014/04/28 职场文书
奖金申请报告模板
2015/05/15 职场文书
鸦片战争观后感
2015/06/09 职场文书
运动会运动员赞词
2015/07/22 职场文书
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python