json 模块提供了一种很简单的方式来编码和解码JSON 数据。
字符串操作
其中两个主要的函数是json.dumps() 和json.loads() ,要比其他序列化函数库如pickle 的接口少得多。下面演示
1.如何将一个Python 数据结构转换为JSON
2.如何将一个JSON 编码的字符串转换回一个Python 数据结构
import json
data={
'name':'AWQA',
'shares':100,
'price':542.33
}
json_str=json.dumps(data)
print(json_str)
data1=json.loads(json_str)
print(data1)
文件操作
dump: 将数据写入json文件中
load:把文件打开,并把字符串变换为数据类型
import json
data={
'name':'AWQA',
'shares':100,
'price':542.33
}
'''
with open(r'C:\Temp\aa.json','w') as f:
json.dump(data,f)
'''
with open(r'C:\Temp\aa.json','r') as f:
loadfile=json.load(f)
print(loadfile)
JSON 编码支持的基本数据类型为None , bool , int , float 和str ,以及包含这些类型数据的lists,tuples 和dictionaries。对于dictionaries,keys 需要是字符串类型(字典中任何非字符串类型的key 在编码时会先转换为字符串)。为了遵循JSON规范,应该只编码Python 的lists 和dictionaries。而且,在web 应用程序中,顶层对象被编码为一个字典是一个标准做法。
JSON 编码的格式对于Python 语法而已几乎是完全一样的,除了一些小的差异之外。比如,True 会被映射为true,False 被映射为false,而None 会被映射为null。下面是一个例子,演示了编码后的字符串效果:
>>> json.dumps(False)
'false'
>>> d = {'a': True,
... 'b': 'Hello',
... 'c': None}
>>> json.dumps(d)
'{"b": "Hello", "c": null, "a": true}'