• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python中解析JSON并同时进行自定义编码处理实例

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

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了python json,python json模块,python json解析,python json.loads,python json.dumps等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

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

使用方法为:

d = json.loads(json_str, object_hook=_decode_dict)
</div>

附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
</div>

参考:
1.https://docs.python.org/2/library/json.html
2.https://github.com/clowwindy/shadowsocks/blob/master/shadowsocks/utils.py

</div>

您可能想查找下面的文章:

  • python中解析json格式文件的方法示例
  • python中字符串类型json操作的注意事项
  • python中解析json格式文件的方法示例
  • python中字符串类型json操作的注意事项
  • python递归查询菜单并转换成json实例
  • python递归查询菜单并转换成json实例
  • Python的标准模块包json详解
  • 深入理解Python对Json的解析
  • 深入理解python对json的操作总结
  • python对json的相关操作实例详解

相关文章

  • python 合并文件的具体实例
  • python函数参数*args**kwargs用法实例
  • 简单谈谈Python中的闭包
  • 粗略分析Python中的内存泄漏
  • Python中的条件判断语句与循环语句用法小结
  • jupyter安装小结
  • python实现ping的方法
  • Python实现从订阅源下载图片的方法
  • Python内置的字符串处理函数整理
  • Python实现控制台进度条功能

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python多线程实现同步的四种方式
    • python的几种开发工具介绍
    • 举例讲解Python中的list列表数据结构用法
    • 对于Python的Django框架部署的一些建议
    • Python时间戳与时间字符串互相转换实例代码
    • Google开源的Python格式化工具YAPF的安装和使用教程
    • Python中is与==判断的区别
    • Python实现批量把SVG格式转成png、pdf格式的代码分享
    • Python使用lxml模块和Requests模块抓取HTML页面的教程
    • Python中无限元素列表的实现方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有