我最近開發了我的本地機器一個Python代碼從mysql數據庫中讀取數據,並在谷歌大query.I使用服務帳戶插入進行身份驗證,以谷歌大查詢的自動認證目的和我的代碼可以成功執行沒有錯誤。現在我正試圖在docker python容器中運行我的腳本。一旦我運行我的代碼,收到一個認證消息,我不知道如何自動處理它,而無需用戶和系統之間的交互。處理Python腳本讀取和寫入數據使用泊塢窗
消息是:
「請訪問這個URL授權此應用程序: https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=4xxxxxxxk0tmvj2m941jhre2nbqka17vqxxfxxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%xxxxxxxb&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbigquery&state=kszePnO3tOxxxxxx&prompt=consent&access_type=offline 輸入授權碼:回溯(最近通話最後一個):... .........
的EOFError:EOF讀線的時候 「
我的Python代碼:
import mysql.connector
import pandas as pd
from oauth2client.client import GoogleCredentials
from bigquery import get_client
import os
import urllib.request
service_account = '[email protected]'
key = 'xxxxxxxxx.p12'
project_id = 'xxxxxxxxx'
db = mysql.connector.connect(user=$user,
password=$password,host=$host,database=$database)
df= pd.read_sql(sql_query,db)
....
client = get_client(project_id, service_account=service_account,
private_key_file=key, readonly=False)
#Push dataframe to google bigquery
df.to_gbq('GoogleBQDatbaseName.TableName',projectid,verbose=True,if_exists='append')
任何建議如何我可以自動處理我的腳本中的身份驗證問題。 謝謝
感謝您的詳細的答案瓦西里......我會嘗試你的解決方案。不幸的是,在現階段,我無法爲服務帳戶創建JSON文件,因爲我沒有足夠的權限。我只有P12文件,項目ID和服務帳戶的電子郵件文件在我hand.Since它的工作好了我的本地系統上,我認爲有可能是搬運工來處理這種不創建JSON文件就像我在做同樣的事情的解決方案我本地Mac機器。 –
您可以嘗試P12密鑰文件,而不是JSON,但我不知道將它的工作與否 –