本系列文档用于对Python爬虫技术的学习进行简单的教程讲解,巩固自己技术知识的同时,万一一不小心又正好对你有用那就更好了。
Python 版本是3.7.4
前面的几篇文章讲述了如何进行抓取网页数据,如何进行解析HTML的获取数据用法,本篇文章开始我们讲述如何处理所获得的数据,首先我们来学习json数据文件的处理。
JSON(JavaScript Object Notation,JS 对象标记)是一种轻量级的数据交换格式。它基于ECMAScript(w3c制定的js规范)一个自己,采用完全独立于编程语言的文本格式来存储和表示数据。JSON是存储和交换文本信息的语法,类似XML。JSON比XML更小、更快,更易解析简介和清晰的层次结构是的JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,并有效提升网络数据传输。
多个数据之间使用都好分开。
【注意】json本质上就是一个字符串。
json库是Python中的一个标准库,json库中有四个方法,分别是:
json.dumps()
:将字典或列表转换为json格式字符串json.loads()
:将json格式字符串转换为python对象json.dump()
:将对象转换为json格式字符串并且写入到文件中json.load()
:从文件中读取json格式字符串转换为python对象其中dump和dumps是用来把把字典和数组转换为json格式的,dump把转换结果直接写入文件,dumps返回字符串。
load和loads是把json格式的数据转换为字典格式,load直接从json文件中读取数据并返回字典对象,loads把字符串形式的json数据转换成字典格式。
下面我们就讲讲具体用法:
dumps函数将字典或列表转换为json格式字符串,其原型是dumps(obj,ensure_ascii)
参数是要转换的对象。如果要转换的对象里有中文字符的话,要把ensure_ascii
设置为False
否则中文会被编码为ascii格式使用示例代码如下:
# 引入json库
import json
# 声明定义一个列表
lt = [
{'name': '张三', 'age': 26},
{'name': '李四', 'age': 24},
{'name': '王五', 'age': 23},
]
# 转换成json字符串,打印
json_str = json.dumps(lt)
print(json_str)
# 打印结果
# [{"name": "\u5f20\u4e09", "age": 26}, {"name": "\u674e\u56db", "age": 24}, {"name": "\u738b\u4e94", "age": 23}]
loads()函数将json格式字符串转换为python对象,原型是loads(string)
参数string
是要转换成python对象
的json
字符串。使用示例代码如下:
# 引入json库
import json
# 声明定义一个列表
lt = [
{'name': '张三', 'age': 26},
{'name': '李四', 'age': 24},
{'name': '王五', 'age': 23},
]
# 转换成json字符串,打印
json_str = json.dumps(lt)
print(json_str)
obj = json.loads(json_str)
print(obj)
# 打印结果
# [{"name": "\u5f20\u4e09", "age": 26}, {"name": "\u674e\u56db", "age": 24}, {"name": "\u738b\u4e94", "age": 23}]
# [{'name': '张三', 'age': 26}, {'name': '李四', 'age': 24}, {'name': '王五', 'age': 23}]
dump()函数将对象转换为json格式字符串并且写入到文件中,其原型是dump(obj, fp)
第一个参数obj是要转换的对象,第二个参数fp是要写入数据的文件对象。使用示例代码如下:
# 引入json库
import json
# 声明定义一个列表
lt = [
{'name': '张三', 'age': 26},
{'name': '李四', 'age': 24},
{'name': '王五', 'age': 23},
]
# 写入json.txt文件中
json.dump(lt, open('json.txt', 'w', encoding='utf8'), ensure_ascii=False)
# with open('json.txt', 'w', encoding='utf8') as fp:
# json.dump(lt, fp, ensure_ascii=False)
load()函数从文件中读取json格式字符串转换为python对象,其函数原型是load(fp)
参数fp是要读取的文件对象。使用示例代码如下:
# 引入json库
import json
# 声明定义一个列表
lt = [
{'name': '张三', 'age': 26},
{'name': '李四', 'age': 24},
{'name': '王五', 'age': 23},
]
# 加载json.txt文件中的json
ret = json.load(open('json.txt', 'r', encoding='utf8'))
print(ret)