介绍: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 类型转换对照表