加载谷歌表CSV作为Python中的字典

时间:2019-04-09 08:58:45

标签: python google-sheets

我有一个公开的Google工作表,其中包含2个工作表https://docs.google.com/spreadsheets/d/14hFn00O9632n96Z2xGWvfrcY-K4kHiOGR02Rx7dsj54/edit#gid=447738801 我知道如何将其作为csv来获取(如果只有1张),但是有一种简单的方法来获取工作表1和工作表2作为字典或csv文件(每个工作表作为1个csv文件),我将解析它。 两个工作表的gid不同

最后,我将标题作为键,并将标题下的值作为值

2 个答案:

答案 0 :(得分:0)

只需使用熊猫来加载CSV。然后您可以稍后将其转换为Dict或其他任何内容

import pandas as pd 
# Read data from file 'filename.csv' 
data = pd.read_csv("filename.csv") 

data.to_dict('series')

答案 1 :(得分:0)

使用requests库下载每个工作表,并将响应内容写入文件。

有效的实现方式:

import requests

sheets = {
    'sheet1': 'https://docs.google.com/spreadsheets/d/14hFn00O9632n96Z2xGWvfrcY-K4kHiOGR02Rx7dsj54/export?format=csv&id=14hFn00O9632n96Z2xGWvfrcY-K4kHiOGR02Rx7dsj54&gid=0',
    'sheet2': 'https://docs.google.com/spreadsheets/d/14hFn00O9632n96Z2xGWvfrcY-K4kHiOGR02Rx7dsj54/export?format=csv&id=14hFn00O9632n96Z2xGWvfrcY-K4kHiOGR02Rx7dsj54&gid=447738801'
} 

for sheet in list(sheets.keys()):
    response = requests.get(sheets[sheet])
    with open(f'{sheet}.csv', 'wb') as csvfile:
        csvfile.write(response.content)

这会将每个工作表保存在一个文件中(在这种情况下为sheet1.csvsheet2.csv)。请注意,我只是通过从浏览器以CSV格式下载并复制下载链接来获取每个工作表的链接。

然后可以使用CSV库将其转换为词典。参见this post