2016-09-01 4 views
2

私は今PandasとGoogleのシートの間でデータを読み書きする方法を見つけようとしています。私は仕事のために完璧と思われるライブラリdf2gspreadを見つけた。しばらく過ごして、それを働かせようとしていました。Pandas DataFramesをGoogleシートに書き込む:そのようなファイルやディレクトリはありません.oauth/drive.json

教えられるとおり、私はGoogle APIコンソールを使用してクライアントシークレットファイルを作成し、~/.gdrive_privateという名前で保存しました。今、私は次のように、Googleのスプレッドシートの内容をダウンロードしようとしている:私はこれを実行すると

workbook = [local filepath to workbook in Google Drive folder] 
df = g2d.download(workbook, 'Sheet1', col_names = True, row_names = True) 

、それは成功した私のGoogleのシートに自分のアプリケーションへのアクセスを提供するよう求めるブラウザウィンドウを開いています。私は許可をクリックしたときにしかし、iPython誤差が来ている:

FileNotFoundError: [Errno 2] No such file or directory: '/Users/samlilienfeld/.oauth/drive.json' 

含めることになって、このファイルは何ですか?私は、フォルダを作成しようとしましたが、私のクライアントの秘密をdrive.jsonとしてそこに含めましたが、これはうまくいきません。

答えて

0

/User/***/.oauthフォルダがoauth2clientパッケージ(例:issue)で自動的に作成されなかったためです。可能な解決策の1つは、このフォルダを手動で作成するか、またはdf2gspreadを更新することです。問題は最終バージョンで修正する必要があります。

1

事前に認証されたクレデンシャルファイルをg2dコールに渡すことによって、当面問題を回避しました。

シークレットファイル(基本的に〜/ .gdrive_private)と結果として得られる認証済みの信用証明ファイル名を保存することによって、信用証明ファイルを保存するために、here(Python2xの場合は3xで動作するはずです)を作成しました。

適切なファイル名を持つスタンドアロンスクリプトで上記の要点を使用し、ターミナルコンソールから実行します。 Googleを介してOAuth認証を実行するためのブラウザウィンドウが開き、ターミナルプロンプトに貼り付けることができるトークンを提示する必要があります。ここに簡単な例があります:

from gdrive_creds import create_creds 


# Copy Paste whatever shows up in the browser in the console. 
create_creds('./.gdrive_private', './authenticated_creds') 

これで、ファイルを使用してdf2gspread呼び出しを認証できます。 あなたが要点メソッドを使用してCREDファイルを作成したら、あなたのGDriveへのアクセスを取得するには、このような何かを試してみてください。

from oauth2client.file import Storage 
from df2gspread import gspread2df as g2d 


# Read the cred file 
creds = Storage('./authenticated_creds').get() 

# Pass it to g2df (Trimmed for brevity) 
workbook = [local filepath to workbook in Google Drive folder] 
df = g2d.download(workbook, 'Sheet1', col_names = True, credentials=creds) 

df.head() 

これは私のために働きました。

関連する問題