python 读写json数据
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}'