Python在json中的四个函数

242 篇文章 10 订阅
216 篇文章 2 订阅

介绍:JSON,即JavaScript Object Notation,是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。

json.dumps():将 Python对象转换编码成JSON字符串

dumps()函数语法如下:

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=“utf-8”, default=None, sort_keys=False, **kw)

  • skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型,设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key 。
  • ensure_ascii:为True的时候,所有非ASCII码字符显示为\uXXXX序列,只需在dump时将ensure_ascii设置为False即可,此时存入json的中文即可正常显示。
  • check_circular:如果为false,则将跳过容器类型的循环引用检查,循环引用将导致溢出错误。
  • allow_nan:如果为为false,那么严格按照JSON规范序列化超出范围的浮点值将是一个valueerror,而不是使用JavaScript等效值。
  • indent:根据数据格式缩进显示,读起来更加清晰,indent的数值,代表缩进的位数。
  • separators:更改默认分隔符,美化输出结果。
  • sort_keys:将数据根据keys的值进行排序。

实例:如下所示,将python对象转为json格式

import json

data = {
  "name": "Mark",
  "sex": "man",
  "age": 36
}
data_json = json.dumps(data)

print(data_json)

# {"name": "Mark", "sex": "man", "age": 36}


json.load():从文件中读取json字符串

实例:如下所示,从test.json文件中读取数据

import json
f = open('test.json', 'r', encoding='utf-8')
print(json.load(f))

# {'name': 'Mark', 'sex': 'man', 'age': 36}

json.loads():用于解码 JSON 数据,返回 Python 字段的数据类型

loads()函数语法如下:

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

实例:如下所示,将JSON数据转为Python对象

import json
data = '{"name":"Mark", "sex":"man", "age":36}'
result = json.loads(data)
print(result)
# {'name': 'Mark', 'sex': 'man', 'age': 36}

print(result["name"])
# Mark

json.dump():将json格式字符串写到文件中

实例:如下所示,将content数据写入test.json文件中

import json
content = '{"name":"Tom", "sex":"man", "age":36}'
f = open('test.json', 'w', encoding='utf-8')
json.dump(content, f)


test.json文件内容如下所示:

"{\"name\":\"Tom\", \"sex\":\"man\", \"age\":36}"

Python 编码为 JSON 类型转换对照表

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值