JSON的学习使用

这篇博客详细介绍了Python的json模块,包括如何使用json.dump、json.dumps、json.load和json.loads进行序列化和反序列化操作。还提供了实例演示,展示了如何将Python对象转换为JSON字符串以及如何将JSON数据解析回Python对象。
摘要由CSDN通过智能技术生成


笔记来源

  1. 菜鸟教程:Python JSON
  2. Python json 模块dumps、dump、loads、load的使用
  3. 官方文档:

一、使用 json 保存结构化数据

json 标准模块采用 Python 数据层次结构,并将之转换为字符串表示形式的过程称为 serializing (序列化)
从字符串表示中重建数据称为 deserializing (解序化)
在序列化和解序化之间,表示对象的字符串可能已经存储在文件或数据中,或通过网络连接发送到远方 的机器。

>>> import json
>>> result_json = json.dumps([1, 'simple', 'list'])
>>> print(result_json)
'[1, "simple", "list"]'
>>> type(result_json)
<class 'str'>

二、基本使用

2.1 基础讲解

  • json.dump

json.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)

  • 注意事项
  • 使用这个 转换表 将 obj 序列化为 JSON 格式化流形式的 fp (支持 .write() 的 file-like object)。
  • json 模块始终产生str 对象而非 bytes 对象。因此,fp.write() 必须支持 str 输入
  • 如果 ensure_ascii 是 true (即默认值),输出保证将所有输入的非 ASCII 字符转义。如果 ensure_ascii 是 false,这些字符会原样输出。
  • 如果 indent 是一个非负整数或者字符串,那么 JSON 数组元素和对象成员会被美化输出为该值指定的缩进等级。
    如果缩进等级为零、负数或者 “”,则只会添加换行符。 None (默认值) 选择最紧凑的表达。 使用一个正整数会让每一层缩进同样数量的空格。 如果 indent 是一个字符串 (比如 “\t”),那个字符串会被用于缩进每一层。
    当指定时,separators 应当是一个 (item_separator, key_separator) 元组。当 indent 为 None 时,默认值取 (’, ', ‘: ‘),否则取 (’,’, ': ')。为了得到最紧凑的 JSON 表达式,你应该指定其为 (',', ':') 以消除空白字符。
  • 如果 sort_keys 是 true(默认为 False),那么字典的输出会以键的顺序排序。
# json.dump的使用在 爬虫入门概念与硬核实战巩固(一) 博客中有
    fp = open('./douban.json','w',encoding='utf8')
    json.dump(list_data,fp,ensure_ascii=False)
  • json.dumps

使用这个 转换表 将 obj 序列化为 JSON 格式的 str
[即将 Python 对象编码成 JSON 字符串]
其参数的含义与 dump() 中的相同


                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胜天半月子

打不打商的无所谓,能帮到你就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值