![](/img/trans.png)
[英]Getting gspread to update multiple spreadsheet files with the same data
[英]multiple connections to same spreadsheet (gspread)
早安,這是我的第一個問題所以請耐心等待! 我創建了一個系統,用於在我的高中進行模擬選舉,使用覆盆子pi和觸摸屏。 界面通過TKInter處理,然后使用gspread將結果附加到谷歌表。 這使我可以在各種圖表和分析中處理數據。
我遇到的問題是我使用的是4台機器。 如果我一次拿一個,他們會追加數據。 如果我一次做多台機器,我有時只能等待另一台機器,有時只記錄4台機器中的1台。
有沒有可能更好地設置從不同的機器同時推送多個附加? 目前,每台機器都是其他機器的鏡像。 如果我為每台機器執行不同的授權設置和不同的JSON文件,它會更好嗎? 或者還有其他我想念的東西? 寫入工作表的相關代碼如下:
#while True:
# Login if necessary.
if worksheet is None:
worksheet = login_open_sheet(GDOCS_OAUTH_JSON, GDOCS_SPREADSHEET_NAME)
# Append the data in the spreadsheet, including a timestamp
try:
worksheet.append_row((datetime.datetime.now(), gender, grade, party, vote))
except:
# Error appending data, most likely because credentials are stale.
# Null out the worksheet so a login is performed at the top of the loop.
print('Append error, logging in again')
worksheet = None
提前感謝您的協助!
這里的問題是,如果您同時啟動所有這四台機器,它們將具有相對類似的狀態。 但是,一旦一台機器進行了更改,所有其他機器的狀態就會變得與實際紙張不同。
讓我們說這張紙以N行開頭。
如果Machine1將2行附加到工作表,則行數將變為N + 2。
但
機器2-4仍然認為紙張有N行!
當這些N行機器中的任何一台試圖附加到工作表時,它們將覆蓋Machine1寫入工作表的數據,顯然不是你在計算投票時想要發生的事情。
您需要找到一種方法讓每台機器知道紙張狀態何時發生變化並刷新其狀態,或者只有一個接觸點可以從中進行所有附加操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.