python3爬虫学习之数据存储JSON
JSON,全称为JavaScript Object Notation,也就是JavaScript对象标记。它通过对象和数组的组合来表示数据,构造简洁但是结构化非常高,是一种轻量级的数据交换格式。另,推个网站:
json.cn
我们将了解到四个方法:dumps,dump,load,loads
所有代码基于此
import json
user = [
{
'name' : '张三',
'age' : 19,
'password' : 'abc'
},
{
'name' : '李四',
'age' : 19,
'password' : 'qwe'
}
]
我们应该注意到,json的对象是用双引号来包围,这里用单引号不影响是因为我们首先进行的是dump和dumps操作,如果是load和laods操作,解释器会报错,json.cn也会报错
一:dumps方法,将python对象转化为json类型
json_str = json.dumps(user , ensure_ascii=False)
with open ("json_demo.json", "w" , encoding="utf-8") as fp:
fp.write(json_str)
如果出现中文乱码,请注意在这里应该
ensure_ascii=False
且指定编码为utf-8
二:dump方法
with open ("json_demo1.json" , "w" , encoding="utf-8") as fp: #编码避免中文乱码
json.dump(user ,fp , ensure_ascii=False)
可以对比两种方法的区别
三:load方法:将文件中的字符串转化为python对象
注意,我们在前面已经生成了json_dome.json,所以用load和loads方法不是获取第一段代码中的字符串,因此不会报错
with open("json_demo.json" ,"r" ,encoding="utf-8") as fp:
s = json.load(fp)
print(s)
四:loads方法:
json_str = json.dumps(user , ensure_ascii=False)
s = json.loads(json_str)
for a in s:
print(a)