文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python的json模块怎么使用

2023-06-30 18:45

关注

这篇文章主要介绍“python的json模块怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python的json模块怎么使用”文章能帮助大家解决问题。

一、概述

推荐使用参考网站: json

在python中,json模块可以实现json数据的序列化和反序列化

二、方法详解

1.dump()

def dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True,        allow_nan=True, cls=None, indent=None, separators=None,        default=None, sort_keys=False, **kw):

2.dumps

def dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True,        allow_nan=True, cls=None, indent=None, separators=None,        default=None, sort_keys=False, **kw):

把obj序列化成一个json格式的字符串,并返回该字符串支持的python内置可进行json序列化的类型有(str, int, float, bool, None,list,tuple,dict)如果无法序列化的类型,会抛出TypeError

python的json模块怎么使用

其他参数同上解释

3.load

def load(fp, *, cls=None, object_hook=None, parse_float=None,        parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):

python的json模块怎么使用

python的json模块怎么使用

4.loads

def loads(s, *, cls=None, object_hook=None, parse_float=None,        parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):

python的json模块怎么使用

python的json模块怎么使用

parse_constant 如果定义了,那么在碰到-Infinity, Infinity, NaN.这些的时候会被调用;如果遇到无效的json符号,会抛出异常

python的json模块怎么使用

python的json模块怎么使用

三、代码实战

1.dumps()

import jsonif __name__ == '__main__':    # 测试格式化非json格式数据    print('-------------测试格式化非json格式数据----------------')    a = json.dumps(2.0)    print(a, type(a))    a = json.dumps(tuple())    print(a, type(a))    a = json.dumps([])    print(a, type(a))    # 测试格式化json格式数据    print('-------------测试格式化json格式数据----------------')    j = {'a': 1, 'b': 6}    a = json.dumps(j)    print(a, type(a))    # 测试skipkeys参数    print('-------------测试skipkeys参数----------------')    j = {'a': 1, tuple(): 6}    a = json.dumps(j, skipkeys=True)    print(a, type(a))    # 测试indent参数    print('-------------测试indent默认参数----------------')    j = {'a': 1, 'b': 234}    a = json.dumps(j)    print(a, type(a))    print('-------------测试indent=0参数----------------')    a = json.dumps(j, indent=0)    print(a, type(a))    print('-------------测试indent=2参数----------------')    a = json.dumps(j, indent=2)    print(a, type(a))    print('-------------测试separators参数----------------')    a = json.dumps(j, separators=('[', ']'))    print(a, type(a))

python的json模块怎么使用

2.dump()

import jsonif __name__ == '__main__':    # 测试格式化非json格式数据    fp = open('./json_dump_data', mode='w')    print('-------------测试格式化非json格式数据----------------')    a = json.dump(2.0, fp)    fp.write('\n')    a = json.dump(tuple(), fp)    a = json.dump([], fp)    fp.write('\n')    # 测试格式化json格式数据    j = {'a': 1, 'b': 6}    a = json.dump(j, fp)

cat json_dump_data:

python的json模块怎么使用

1和2中很多参数都是相同的,这里就不再详述3.load()

import jsonif __name__ == '__main__':    j = open('./json_data', mode='r')    # 测试默认参数    a = json.load(j)    print('-------------测试默认参数----------------')    print(a)    # 测试object_hook参数    j = open('./json_data', mode='r')    a = json.load(j, object_hook=lambda x: x.get('b'))    print('-------------测试object_hook参数----------------')    print(a)    # 测试object_pairs_hook参数    j = open('./json_data', mode='r')    loads = json.load(j, object_pairs_hook=lambda x: print(type(x), type(x[2])))    print('-------------测试object_pairs_hook参数----------------')    print(loads)    # 测试parse_constant参数    j = open('./json_data', mode='r')    loads = json.load(j, parse_constant=lambda x: 'not notification')    print('-------------测试parse_constant参数----------------')    print(loads)    # 测试parse_int参数    j = open('./json_data', mode='r')    loads = json.load(j, parse_int=lambda x: 'cutomer int')    print('-------------测试parse_int参数----------------')    print(loads)    # 测试parse_float参数    j = open('./json_data', mode='r')    loads = json.load(j, parse_float=lambda x: 'cutomer float')    print('-------------测试parse_float参数----------------')    print(loads)

python的json模块怎么使用

注:
因为load方法的底层是调用了fp.read(),所以每一次重新调用load的时候都需要重新打开文件句柄。不然就会导致在第二次调用load方法的时候,就会因为fp.read()返回的是none就导致异常

4.loads()

import jsonif __name__ == '__main__':    j = '{"a":1,"b":2.0,"c":Infinity}'    # 测试默认参数    a = json.loads(j)    print('-------------测试默认参数----------------')    print(a)    # 测试object_hook参数    a = json.loads(j, object_hook=lambda x: x.get('b'))    print('-------------测试object_hook参数----------------')    print(a)    # 测试object_pairs_hook参数    loads = json.loads(j, object_pairs_hook=lambda x: print(type(x), type(x[2])))    print('-------------测试object_pairs_hook参数----------------')    print(loads)    # 测试parse_constant参数    loads = json.loads(j, parse_constant=lambda x: 'not notification')    print('-------------测试parse_constant参数----------------')    print(loads)    # 测试parse_int参数    loads = json.loads(j, parse_int=lambda x: 'cutomer int')    print('-------------测试parse_int参数----------------')    print(loads)    # 测试parse_float参数    loads = json.loads(j, parse_float=lambda x: 'cutomer float')    print('-------------测试parse_float参数----------------')    print(loads)

python的json模块怎么使用

关于“python的json模块怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯