![](/img/trans.png)
[英]How to add hyperlink to a google sheet cell using gspread in python?
[英]Python gspread, how to populate google sheet, dictionaries within list
我嘗試查看類似問題的答案,但無法使代碼正常工作。 我無法理解如何在列表中填充類似詞典的 gspread。
以下是我要導出的數據結構:
sheet_data = [{
"timestamp": "09-04-2019",
"value": "10.0",
"company_name": "Xbox",
"product": "Buy"
},
{
"timestamp": "09-03-2019",
"value": "2.0",
"company_name": "something",
"product": "Sell"
}]
以下是我現在嘗試和工作的內容。 我剩下的問題是,我正在手動輸入 cell_range = worksheet.range('A2:D3'),我該怎么做才能將工作表更新為具有給定數據的任何可用單元格。 由於我在 sheet_data 中擁有的數據量將在未來的更新中發生變化。
header = ['timestamp', 'value', 'company_name', 'product']
worksheet.add_rows(len(sheet_data))
cell_range = worksheet.range('A2:D3')
flat_sheet_data = []
for row in sheet_data:
for column in header:
flat_sheet_data.append(row[column])
for i, cell in enumerate(cell_range):
cell.value = flat_sheet_data[i]
worksheet.update_cells(cell_range)
鏈接到我想使用上述數據結構在電子表格上完成的圖像: https ://i.stack.imgur.com/EQLEI.png
sheet_data
放入電子表格。sheet_data
,“日期”、“公司名稱”、“流量”和“產品”分別對應於“時間戳”、“公司名稱”、“價值”和“產品”。我可以像上面那樣理解。 如果我的理解是正確的,這個答案怎么樣? 請將此視為幾種可能的答案之一。
此示例腳本的流程如下。
header_to_key
。values_append
的方法放置創建的列表。在運行腳本之前,請設置變量。
spreadsheetId = "###" # Please set the Spreadsheet ID.
sheetName = "Sheet1" # Please set the sheet name.
sheet_data = [{
"timestamp": "09-04-2019",
"value": "10.0",
"company_name": "Xbox",
"product": "Buy"
}, {
"timestamp": "09-03-2019",
"value": "2.0",
"company_name": "something",
"product": "Sell"
}]
header_to_key = {
'Date': 'timestamp',
'Company_Name': 'company_name',
'Traffic': 'value',
'Product': 'product'
}
client = gspread.authorize(credentials)
spreadsheet = client.open_by_key(spreadsheetId)
worksheet = spreadsheet.worksheet(sheetName)
headers = worksheet.row_values(1)
put_values = []
for v in sheet_data:
temp = []
for h in headers:
temp.append(v[header_to_key[h]])
put_values.append(temp)
spreadsheet.values_append(sheetName, {'valueInputOption': 'USER_ENTERED'}, {'values': put_values})
以下方法對我有用
gc = gspread.authorize(credentials)
sh = gc.open_by_url("url of the sheet")
ws = sh.worksheet(ws_title)
records = json.loads(sheet_data)
keys = [str(eachvalue) for eachvalue in records.keys()]
values = [str(eachvalue) for eachvalue in records.values()]
Data =[{'range': 'A1:D1','values': [keys],}, {'range': 'A2:D2','values': [values],}]
ws.batch_update(Data);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.