一、json
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也就是python里面的列表。
标准JSON格式:{“name”:"Tom"},类似与python中的字典,但是key和value都是双引号,而字典是单引号 ,json是一种特殊的字符串
json模块常用的四种方法:dumps 、loads、dump、load
1)dumps和loads方法
dumps:将字典型转换为json字符串
实例1:
import json person = { 'name': 'ACME', 'sex': 'male', 'height': 100, 'price': 542.23, 'hobby': 'sing' } # 一个Python数据结构转换为JSON 字符串 json_str = json.dumps(person,indent=4)
) print(type(person),person) print(type(json_str),json_str)
返回结果:
<class 'dict'> {'name': 'ACME', 'sex': 'male', 'height': 100, 'price': 542.23, 'hobby': 'sing'}
<class 'str'> {
"name": "ACME",
"sex": "male",
"height": 100,
"price": 542.23,
"hobby": "sing"
}
loads方法:一个JSON编码的字符串转换回字典类型
# json.loads() #将json字符串转为字典 stat = json.loads(json_str) print(stat) print(type(stat))
返回结果:
{'name': 'ACME', 'sex': 'male', 'height': 100, 'price': 542.23, 'hobby': 'sing'} <class 'dict'>
2)dump和load方法
dump方法先将person转换为json字符串,再自动写入文件
import json person = { 'name': 'ACME', 'sex': 'male', 'height': 100, 'price': 542.23, 'hobby': 'sing' } with open('json_1.txt','w',encoding='utf-8') as f: json.dump(person,f,indent=4,ensure_ascii=False) #indent表明json的首行缩进空格数,ensure_asscii=False 表示不使用ascii就可以正常展示中文
#------------------等价于---------- # content=json.dumps(person) # f.write(content) #dump方法先将person转换为json字符串,再自动写入文件
返回结果(json_1.txt):
''' json_1.txt content ''' {"name": "ACME", "sex": "male", "height": 100, "price": 542.23, "hobby": "sing"}
load:自动读取文件内容,并自动将内容转换为字典
with open('json_1.txt',encoding='utf-8') as f: str=json.load(f) #----------等价于-------- # content=f.read() # str=json.loads(content) print(str)
返回结果:
{'name': 'ACME', 'sex': 'male', 'height': 100, 'price': 542.23, 'hobby': 'sing'}