首页 > 编程语言 >Python-json库

Python-json库

时间:2022-10-25 17:58:20浏览次数:35  
标签:None Python object JSON parse hook json

json库

python 原始类型与 json 类型的转化对照表:

Python JSON
dict object
list(, tuple) array
unicode(, str) string
int(, long) number (int)
float number (real)
True true
False false
None null

json.dumps()

将 Python 对象编码成 JSON 字符串.

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)
参数 说明
skipkeys 如果为真,则"字典"键不是基本类型(str, int, float, bool, None)将被跳过而不是提出“类型错误”。
ensure_ascii 如果为假, 则返回值可以包含非 ASCII字符(如果它们出现在“obj”中包含的字符串中). 否则, 所有此类字符在 JSON 字符串中转义.
check_circular 如果为假,则跳过对于容器类型的循环引用检查并且循环引用会导致“溢出错误”(或更糟)。
allow_nan 如果为假, 那么在严格遵守 JSON 规范的情况下, 对于python序列化对象超出范围的浮点值(nan, inf, -inf)将是“值错误”, 而不是使用 JavaScript 等效项(NaN, Infinity, -Infinity).
cls 要使用自定义的"JSONEncoder"子类(例如, 重写''.default()''方法以序列化其他类型), 请使用"cls"kwarg指定它; 否则, 将使用JSON 编码器.
indent 如果是非负整数, 则 JSON 数组元素和对象成员将使用该缩进级别进行美观打印. 缩进级别 0 将仅插入换行符. “无”是最紧凑的表示形式.
separators 如果指定, 分隔符应为(item_separator,key_separator)元组. 默认值为(', ', ': '). 要获得最紧凑的 JSON 表示形式,您应该指定(',', ':')以消除空格。
default "default(obj)"是一个函数, 应该返回 obj 的可序列化版本或引发类型错误. 默认值只是引发类型错误.
sort_keys 如果为真, 则字典的输出将按键排序.
import json

data = [{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}]
data2 = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': '))
print(data2)
#'[
#    {
#        "a": 1,
#        "b": 2,
#        "c": 3,
#        "d": 4,
#        "e": 5
#    }
#]'
# JSON 字符串

json.loads()

将已编码的 JSON 字符串解码为 Python 对象.

json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
参数 说明
s 将"s"(包含 JSON 文档的"str"、"bytes"或"bytearray"实例)反序列化为 Python 对象
cls 要使用自定义的" JSON 解码器"子类, 请使用"cls" kwarg指定它; 否则, 将使用" JSON 解码器"
object_hook "object_hook"是一个可选函数, 将使用任何对象文本解码(字典)的结果进行调用. 用(object_hook)的返回值代替字典. 此功能可用于实现自定义解码器(例如 JSON-RPC 类提示)
parse_float "parse_float"(如果指定)将与要解码的每个 JSON 浮点数的字符串一起调用. 默认情况下, 这等效于浮点数(num_str). 这可用于将其他数据类型或解析器用于 JSON 浮点数
parse_int "parse_int"(如果指定)将与要解码的每个 JSON 整型的字符串一起调用. 默认情况下, 这等效于 int(num_str). 这可用于对 JSON 整数(例如浮点数)使用其他数据类型或解析器
parse_constant "parse_constant"(如果指定)将使用以下字符串之一调用: -Infinity, Infinity, NaN. 这可用于在遇到无效的 JSON 编号时引发异常
object_pairs_hook "object_pairs_hook"是一个可选函数, 它将使用有序的对列表解码的任何对象文本的结果进行调用. 将使用"object_pairs_hook"的返回值代替"字典". 此功能可用于实现自定义解码器. 如果还定义了"object_hook", 则"object_pairs_hook"优先
data3 = json.loads(data2)
print(data3)
# [{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}]
# 列表类型

json.dump()

向文件写入对应 JSON 格式的 python 对象.

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)
with open('data.json', 'w') as f:
    json.dump(data, f, indent=4)

json.load()

读取 JSON 数据.

json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
with open('data.json', 'r') as f:
    data = json.load(f)
    print(data)
# [{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}]

标签:None,Python,object,JSON,parse,hook,json
From: https://www.cnblogs.com/khrushchefox/p/16825696.html

相关文章

  • python TypeError: send_request() missing 1 required positional argument: 'self'
    问题场景:封装request的时候写了一个类,然后请求的时候接口报TypeError:send_request()missing1requiredpositionalargument:'self'首先封装的代码是这样的,如下图......
  • python内置方法
    1、abs绝对值2、round四舍五入(如果是浮点数,奇进偶不进)3、sum计算一个序列的和4、max取序列最大值5、min取序列最小值6、pow计算某个数值的x次方7、range产生......
  • python实现二叉树并且遍历
    python实现二叉树并且遍历2.1二叉树的遍历2.1.1前序遍历(根左右)二叉树的前序遍历的步骤如下:访问树的根节点---->访问当前节点的左子树---->若当前节点无左子树,访......
  • script python and python interpreter
    sPython和Python解释器https://www.cnblogs.com/nickchen121/p/10722729.html目录一、Python介绍二、Python解释器发展史三、Python解释器的类型3.1CPython3.2......
  • Python命名空间(函数)
    作用域:作用范围#命名空间:划分一块区域保存所有的数据,以字典方式存储(变量与值形成映射关系)#内建命名空间:解释器启动时创建,直到解释器运行结束,生存周期最长#全局命名空......
  • Python制作自动填写脚本,100%准确率
    本次案例代码实现思路:本次案例代码实现思路:打开考试网站selenium-->浏览器驱动-->操作浏览器<模拟人的行为做操作浏览器>获取答案获取答案网站链接获取问题......
  • Linux下 Python matplotlib 包无法使用中文
    官方办法摘抄如下#firstmethodmatplotlib.rcParams['font.family']=['SourceHanSansTW','sans-serif']#secondmethodmatplotlib.rcParams['font.family']......
  • python中的单例模式
    单例模式单例模式(singletonpattern)是一种常用的软件设计模式,主要目的是确保代码运行时,某一个类只有一个实例存在。这样可以避免多次实例化同一个类,浪费内存资源。基于......
  • Python|爬取每日疫情数据并使用matplotlib绘制图像进行分析
    网页分析数据源腾讯疫情实时追踪打开网址,F12进入开发者工具(刷新一下页面),如下,所有数据都可以通过接口获取:国内数据接口:https://api.inews.qq.com/newsqa/v1/query/inn......
  • python进阶之路19 地狱入口购物车!!!!
    地狱之门##项目功能#1.用户注册#2.用户登录#3.添加购物车#4.结算购物车##项目说明#用户数据采用json格式存储到文件目录db下一......