我们保存的数据不能以字典或者列表类型保存,json则是一种很好的轻量级的数据保存的格式。
前提
环境:python 3.x
安装json模块:pip install json
四种操作json字符串的方法
用于json字符串和python数据类型的转换
- json.loads()
把json格式字符串解码转换成python对象
listStr = '[1, 2, 3, 4]'
dictStr = '{"city":"changsha","name":"choudoufu"}'
# 如果自己定义一个json数据类型,那么字典里面的引号必须用双引号
pyList = json.loads(listStr)
pyDict = json.loads(dictStr)
print("pyList: {}" .format(pyList))
print("pyDict: {}".format(pyDict))
#--------------------运行结果---------------------#
pyList: [1, 2, 3, 4]
pyDict: {'city': 'changsha', 'name': 'choudoufu'}
- json.dumps()
把python数据类型转化为json字符串,返回一个字符串对象或者是字典类型的字符串
listList = [1, 2, 3, 4]
listDict = [{"city": " 长沙", "name": "臭豆腐"}]
pyList = json.dumps(listList, ensure_ascii=False)
pyDict = json.dumps(listDict, ensure_ascii=False)
print("pyList: {}".format(pyList))
print("pyDict: {}".format(pyDict))
#--------------------运行结果---------------------#
pyList: [1, 2, 3, 4]
pyDict: [{"city": " 长沙", "name": "臭豆腐"}]
- json.dump()
将python内置类型序列化为json对象后写入文件
对文件进行操作
listStr = [{"city": " 长沙", "name": "臭豆腐"}]
# with open省略file.close()
with open('listStr.json', 'w',encoding="utf-8") as file:
json.dump(listStr, file, ensure_ascii=False)
- json.load()
文件从json形式的字符串元素转化成python类型
f = open('listStr.json', encoding='utf-8')
listStr = json.load(f)
print(listStr)
print(type(listStr))
f.close()
#--------------------运行结果---------------------#
[{'city': ' 长沙', 'name': '臭豆腐'}]
<class 'list'>
参考资料
b站视频:Python爬虫,网页抓json数据包详细教程,爬虫必备技能
Logging
- 20190813 add link
- 20190809 init