Python爬虫之数据处理
json
基本介绍
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
一些好用的json转换网站:www.json.cn
JSON支持数据格式:
- 对象(字典)。使用花括号。
- 数组(列表)。使用方括号。
- 整形、浮点型、布尔类型还有null类型。
- 字符串类型(字符串必须要用双引号,不能用单引号)。
多个数据之间使用逗号分开。
注意: json本质上就是一个字符串。
将python对象转换为json字符串
dump和dumps
举例代码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39#encoding: utf-8
import json
# 将python对象转换为json字符串
persons = [
{
'username':"张三",
'age': 18,
'country': 'china'
},
{
'username': '李赛',
'age': 20,
'country': 'china'
}
]
# 方法一
# json_str = json.dumps(persons) # dumps注意有s
# with open('person.json','w') as fp:
# fp.write(json_str)
# 方法二
# 因为json在dump的吋候,只能存放ascii的字符,因此会将中文迸行转义,这吋候我们可以使用ensure_ ascii=False 关闭这个特性。
with open('person.json','w',encoding='utf-8') as fp:
json.dump(persons,fp,ensure_ascii=False) # 第二个参数是为了中文不会变成ASCII码形式,dump注意没有s
# 在Python中。只有基本数据类型オ能转换成json格式的字符串。也即: int 、float、list、dict 、tuple o
# class Person(object):# 非基本数据类型不能被转化为json.
# country = 'china'
#
# a = {
# 'person': Person()
# }
# json.dumps(a)
运行结果:生成一个person.json文件里面的内容是:
1 | [{"username": "张三", "age": 18, "country": "china"}, {"username": "李赛", "age": 20, "country": "china"}] |
将一个json字符串转化成python对象
load 和loads
1 | #encoding: utf-8 |
运行结果:
1 | <class 'list'> |
CSV
基本介绍
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。
- 纯文本,使用某个字符集,比如ASCII、Unicode、EBCDIC或GB2312;
- 由记录组成(典型的是每行一条记录);
- 每条记录被分隔符分隔为字段(典型分隔符有逗号、分号或制表符;有时分隔符可以包括可选的空格);
- 每条记录都有同样的字段序列。
读取csv文件
reader()返回列表下标读取
1 | #encoding: utf-8 |
DictReader()返回字典key读取
1 | #encoding: utf-8 |
写入csv文件
writer()
1 | #encoding: utf-8 |
DictWriter()
1 | #encoding: utf-8 |