可以将python中列表,字典等保存成json对象/文件,json对象类型为str
1. python对象与json对象互相转化
import json
dictionary = {"a":1, "b":2, "c":3}
array = [1,2,3,4]
# 将python对象保存成json对象
json1 = json.dumps(dictionary)
json2 = json.dumps(array)
print(json1)
print(type(json1))
print(json1[4:])
print(json2)
print(type(json2))
# 将json对象转化成python对象
diction = json.loads(json1)
arr = json.loads(json2)
print(diction)
print(type(diction))
print(arr)
print(type(arr))
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)
skipkeys: 当为True时,如果字典的键值不是(str, int, float, bool, None)这些基本数据类型时,将会被跳过,而不是产生”typeError“错误,如果是False,键值不是基本数据类型时,将产生TypeError错误
ensure_ascii:是否使用ASCII编码,如果存在中文,将其设置成False,否则无法正常显示中文
indent:非负整数, 设置json对象缩进格式
sort_keys:参数置为True时,生成的json对象是按键排序的
2. 存取json文件
存json文件,将python对象存到json格式的文件中不再用dumps,而是要用dump, 同样加载不是使用loads而是使用load
import json
person_info = {"name":"xiaoming", "age":18, "score":99.5}
file = open("./info.json", "w")
json.dump(person_info, file, indent=4)
file.close()
输出文件内容:
{
"name": "xiaoming",
"age": 18,
"score": 99.5
}
import json
file = open("./info.json")
preson_info = json.load(file)
print(preson_info)
输出
{'name': 'xiaoming', 'age': 18, 'score': 99.5}
参数说明
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)
和上面dumps参数一样