数据存储

210 阅读1分钟

1.csv形式保存

a. 以列表形式写入数据

# 打开data.csv文件
with open("data.csv","a",newline="") as csvfile:
    # 初始化写入对象,delimiter表示列间以什么分隔
    writer = csv.writer(csvfile,delimiter=',')
    writer.writerow(['id','name','age'])
    writer.writerow(['10001', 'Mike', '20'])
    writer.writerow(['10002', 'Bob', '21'])
    writer.writerow(['10003', 'Jordan', '21'])
    
    # 多行写入
    writer.writerows([['10001', 'Mike', '20'],['10002', 'Bob', '21'],['10003', 'Bob', '21']])

b.以字典形式写入

# 以字典的形式写入数据
with open('data.csv','w',newline="") as csvfile:
    filednames = ['id','name','age']
    writer = csv.DictWriter(csvfile,filednames)
    writer.writeheader()
    writer.writerow({'id':'10001', 'name':'Mike','age':'20'})
    writer.writerow({'id': '10001', 'name': 'Mike', 'age': '20'})
    writer.writerow({'id': '10001', 'name': 'Mike', 'age': '20'})

c.读取

# 读取
with open('data.csv','r',encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)

2.提取页面表格

import pandas as pd
# 提取页面表格
url = 'http://data.eastmoney.com/bbsj/300059.html'
tables = pd.read_html(url)
print(len(tables))
for i,table in enumerate(tables):
    print(i)
    table.to_csv('table{}.csv'.format(i), mode='w', encoding='utf_8_sig', header=0, index=0)