零基础带你搞定分布式爬虫(第二节)

标签: Python  编程语言  web开发  分布式爬虫  数据分析

数据存储

json

------命名不要json.py,坑-----

JSON支持数据格式:

  1. 对象(字典)。使用花括号。
  2. 数组(列表)。使用方括号。
  3. 整形、浮点型、布尔类型还有null类型。
  4. 字符串类型(字符串必须要用双引号,不能用单引号)。

多个数据之间使用逗号分开。

注意:json本质上就是一个字符串。

字典和列表转JSON:
>>> import json
>>> data = {
... 'name' : 'ACME',
... 'shares' : 100,
... 'price' : 542.23
... }
>>> json_str = json.dumps(data)
>>> json_str
'{"name": "ACME", "shares": 100, "price": 542.23}'
>>> data1 = json.loads(json_str)
>>> data1
{'name': 'ACME', 'shares': 100, 'price': 542.23}

处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码JSON数据。

# Writing JSON data
'''
data = [
 {
 'title': '钢铁是怎样练成的',
 'price': 9.8
 },
 {
 'title': '红楼梦',
 'price': 9.9
 }
]
'''
with open('data.json', 'w',encoding='utf-8') as f:
 json.dump(data, f)
# Reading data back
with open('data.json', 'r') as f:
 data = json.load(f)

csv文件处理

写入数据到csv文件

写入数据到csv文件,需要创建一个writer对象,主要用到两个方法。一个是writerow,这个是写入一行。一个是writerows,这个是写入多行。

import csv
headers = ['name','age','classroom']
values = [
 ('zhiliao',18,'111'),
 ('wena',20,'222'),
 ('bbc',21,'111')
]
with open('test.csv','w',newline='') as fp:
 writer = csv.writer(fp)
 writer.writerow(headers)
 writer.writerows(values)

写入字典

import csv
headers = ['name','age','classroom']
values = [
 {"name":'wenn',"age":20,"classroom":'222'},
 {"name":'abc',"age":30,"classroom":'333'}
]
with open('test.csv','w',newline='') as fp:
writer = csv.DictWriter(fp,headers)
 writer = csv.writeheader()
 writer.writerow({'name':'zhiliao',"age":18,"classroom":'111'})
 writer.writerows(values)

读取csv文件:

import csv
with open('test.csv','r') as fp:
 reader = csv.reader(fp)
 titles = next(reader)
 for x in reader:
 print(x)
这样操作,以后获取数据的时候,就要通过下表来获取数据。如果想要在获取数据的时候通过标题来获取。那么可以使用DictReader。示例代码如下:
import csv
with open('test.csv','r') as fp:
 reader = csv.DictReader(fp)
 for x in reader:
 print(x['name'])

 

原文链接:加载失败,请重新获取