美文网首页互联网科技大数据 爬虫Python AI Sql
零基础带你搞定分布式爬虫(第二节)

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

作者: Python编程社区 | 来源:发表于2018-09-05 13:30 被阅读1次

    数据存储

    json

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

    JSON支持数据格式:

    对象(字典)。使用花括号。

    数组(列表)。使用方括号。

    整形、浮点型、布尔类型还有null类型。

    字符串类型(字符串必须要用双引号,不能用单引号)。

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

    注意: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'])

    相关文章

      网友评论

        本文标题:零基础带你搞定分布式爬虫(第二节)

        本文链接:https://www.haomeiwen.com/subject/tprawftx.html