第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > Python中解析JSON并同时进行自定义编码处理实例

Python中解析JSON并同时进行自定义编码处理实例

时间:2019-06-05 06:08:09

相关推荐

Python中解析JSON并同时进行自定义编码处理实例

后端开发|Python教程

Python,解析JSON,自定义编码

后端开发-Python教程

在对文件内容或字符串进行JSON反序列化(deserialize)时,由于原始内容编码问题,可能需要对反序列化后的内容进行编码处理(如将unicode对象转换为str)。

商业源码 棋,ubuntu显示显卡参数,把tomcat暴露在互联网,新手买哪种爬虫,PHP期末作业制作一个网站,苏州seo公lzw

在Python中,一种方式是先使用json.load或json.loads反序列化得到dict对象,然后对这个dict对象进行编码处理。

源码怎么加授权,ubuntu如何读取优盘,虚拟机怎么连接tomcat,考研资讯爬虫,学php和app开发,老兵seo优化lzw

但其实在json.load与json.loads中,有可选参数object_hook。通过使用此参数,可以对反序列化得到的dict直接进行处理,并使用处理后新的dict替代原dict返回。

淘宝源码图标,vscode网页浏览,ubuntu中创建文件,tomcat长度,sqlite 页池,什么是虚拟服务器账号,图片剪辑插件js,CS架构前端框架,java爬虫获取动态数据,php串接,如何自学seo优化,asp动态网站源码,ios 获取网页源码下载,手机网站产品展示模板,网站联系我们页面,公司的管理系统,usb通信程序lzw

使用方法为:

复制代码 代码如下:

d = json.loads(json_str, object_hook=_decode_dict)

附Shadowsocks中使用的_decode_dict与_decode_list:

复制代码 代码如下:

def _decode_list(data):

rv = []

for item in data:

if isinstance(item, unicode):

item = item.encode(utf-8)

elif isinstance(item, list):

item = _decode_list(item)

elif isinstance(item, dict):

item = _decode_dict(item)

rv.append(item)

return rv

def _decode_dict(data):

rv = {}

for key, value in data.iteritems():

if isinstance(key, unicode):

key = key.encode(utf-8)

if isinstance(value, unicode):

value = value.encode(utf-8)

elif isinstance(value, list):

value = _decode_list(value)

elif isinstance(value, dict):

value = _decode_dict(value)

rv[key] = value

return rv

参考:

1./2/library/json.html

2./clowwindy/shadowsocks/blob/master/shadowsocks/utils.py

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。