python3 json库学习

JSON (JavaScript Object Notation) 作为一种轻量级的数据交换格式,经常被使用于web前端和后端之间传输数据。

Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它主要包含以下四个函数:


  • json.dump()
    将python数据对象以JSON格式数据流的形式写入到文件

  • json.load()
    解析包含JSON数据的文件为python对象

  • json.dumps()
    将python数据对象转换为JSON格式的字符串

  • json.loads()
    将包含JSON的字符串、字节以及字节数组解析为python对象

这里写图片描述
这里写图片描述


平常用的比较多的是json.dumps()和json.loads()

导入

import json

json.dumps()

json.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 python数据对象

#skipkeys 当值为True时,若键不是以下类型(str, int, float, bool, None),则会略过,而不是触发错误

#ensure_ascii 当值为True时,输出时会自动转义所有非ASCII字符

#allow_nan 当值为True时,会将超过浮点数取值范围的数值自动对应于JAVASCRIPT的(NaN, Infinity, -Infinity),否则会引发错误

#sort_keys 当值为True时,输出结果会按键值排序
data = {
    'num' : 1,
    'name' : 'zjw',
    'url' : 'https://www.zjw666.top'
}

json_str = json.dumps(data)
# 输出 JSON 对象: {"url": "https://www.zjw666.top", 'num' : 1, "name": "zjw"}
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> print(json.dumps("\"foo\bar"))
"\"foo\bar"
>>> print(json.dumps('\u1234'))
"\u1234"
>>> print(json.dumps('\\'))
"\\"
>>> print(json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True))
{"a": 0, "b": 0, "c": 0}

json.loads()

json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)

#s 包含JSON的字符串、字节以及字节数组

#object_hook 将传入的字典解析后,再调用用户定义的钩子函数,最终返回钩子函数的返回值
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads('"\\"foo\\bar"')
'"foo\x08ar'
>>> def as_complex(dct):
...     if '__complex__' in dct:
...         return complex(dct['real'], dct['imag'])
...     return dct
...
>>> json.loads('{"__complex__": true, "real": 1, "imag": 2}',
...     object_hook=as_complex)
(1+2j)

json.dump() 和 json.load()

如果你要处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码JSON数据。例如:

# 写入 JSON 数据
with open('data.json', 'w') as f:
    json.dump(data, f)

# 读取数据
with open('data.json', 'r') as f:
    data = json.load(f)

如果觉得这篇文章帮助了您,请打赏一个小红包鼓励作者继续创作哦!!!

在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值