python中json模块提供了对JSON的支持,它既包含了将JSON字符串转换为python对象的函数,又提供了将python对象转换成JSON字符串的函数
JSON中常用函数有:
json.dump():将obj对象转换为JSON字符串
json.dumps(():将obj对象转换为JSOM字符串,并返回该JSON字符串
json.load():读取字符串,将其恢复成为JSON对象,支持write()方法
json.loads():将JSON字符串恢复成为JSON对象
`# json是文件传输的一种格式,可以理解为特殊的字符串
import json
names = ['lisi', 'wangwu', 'zhangsan']
w_file = open('names_json.txt', 'w')
# json.dumps 把对象转换成为一个JSON字符串
# result = json.dumps(names)
# print(result) # ' ["lisi", "wangwu", "zhangsan"] '
# w_file.write(result)
json.dump(names, w_file)
w_file.close()
r_file = open('names_json.txt', 'r')
# json.load 加载一个文件的内容,把文件里的JSON字符串加载成一个对象
# x = json.load(r_file)
# print(x,type(x))
# y = json.loads('["lisi", "wangwu", "zhangsan"]')
# y = json.loads("{'name':'zhangsan','age':18,'height':175}") # 错误,JSON字符串必须要使用双引号
y = json.loads('{"name":"zhangsan","age":18,"height":175}')
print(y, type(y))
r_file.close()
`
python支持更多的JSON所不支持的类型,比如复数,矩阵等,如果直接使用dump()或者dumps()函数进行转换,程序肯定会出问题,此时就需要开发者对JSONEncoder类进行拓展,通过这种拓展来完成从python特殊类型对JSON类型的转换。