【发布时间】:2017-01-24 14:35:45
【问题描述】:
我正在编写一个 python 脚本来将数据从 csv 文件发送到 Google 电子表格。我对这个项目的基本需求有一个清晰的了解,但是我完全迷失了从 csv 文件到谷歌表的格式化/解析数据(我还在学习 python!)。
所以这是我的代码的第一部分:
def add_todo():
credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
discoveryUrl = ('https://sheets.googleapis.com/$discovery/rest?'
'version=v4')
service = discovery.build('sheets', 'v4', http=http,
discoveryServiceUrl=discoveryUrl)
spreadsheetId = 'spreadsheetidhere'
rangeName = 'A1:A'
# https://developers.google.com/sheets/guides/values#appending_values
values = {'values':[['Hello Saturn',],]}
result = service.spreadsheets().values().append(
spreadsheetId=spreadsheetId, range=rangeName,
valueInputOption='RAW',
body=values).execute()
if __name__ == '__main__':
add_todo()
不是我自己写的,它运行良好。
这是我的代码的第二部分:
test = []
with open('data.csv', 'rb') as f:
reader = csv.reader(f)
for row in reader:
test.append(row)
它也可以正常工作,即使我真的不知道应该如何将它与我的代码的第一部分混合使用。我已经这样做了:
test = []
def add_todo():
with open('snap.csv', 'rb') as f:
reader = csv.reader(f)
for row in reader:
test.append(row)
credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
discoveryUrl = ('https://sheets.googleapis.com/$discovery/rest?'
'version=v4')
service = discovery.build('sheets', 'v4', http=http,
discoveryServiceUrl=discoveryUrl)
spreadsheetId = '1UJGs-gJCIUDv5jg5-p0MPEqsokYu5k2MfJ8A5oBkpWs'
rangeName = 'A1:A'
# https://developers.google.com/sheets/guides/values#appending_values
values = {'values':[['Hello Saturn',],]}
result = service.spreadsheets().values().append(
spreadsheetId=spreadsheetId, range=rangeName,
valueInputOption='RAW',
body=values).execute()
if __name__ == '__main__':
add_todo()
您可以猜到我主要关心的是我应该如何继续将数据从 test 数组传递到电子表格值 values = {'values':[['Hello Saturn',],]}
我想做这样的事情:values = {'values':[test]} 但显然它不起作用。
总而言之,这是我的 csv 文件:
data1,data2,data3,data4,...
value1x,value2x,value3x,value4x,...
value1y,value2y,value3y,value4y,...
value1z,value2z,value3z,value4z,...
这是我想要的电子表格中的内容:
data1 data2 data3 data4 //col name
value1x value2x value3x value4x //row1
value1y value2y value3y value4y //row2
etc...
我完全迷失在array、list、json 格式之间。
【问题讨论】: