2017-11-02 7 views
1

私はPythonで非常に新しいです。私はAPIリンク、ユーザー名、パスワードを持ってデータを読んでいます。 APIリクエストからデータを読み込んでJSONファイルに保存する必要があります。その後、私はパンダやRのデータフレームでそれを読んでより多くの分析をします。だから私がやった:ラテン語の許可URLからjsonデータを読み込む?

最初のアプローチ:

import requests 
import json 
import urllib, base64 
url = 'https://abcXXXXXXXX.com/' 
username = 'kebXXXXXXXXX' 
password = 'XXXb8thXXXXpb8thXX' 

次のコードは、私がおそらくJSONとしてエクスポートすることはできませんよバイト文字列を与えます。

print(requests.get(url, auth=(username, password)).content) 

ので、私はそれとしてデコード:私のリストが、子テキストを与える

print(requests.get(url, auth=(username, password)).content.decode("utf-8")) 

はヨーロッパの言語であり、それが適切な形式を読み取りません。ボットファイルでは、バイトとデコードファイルのテキストは、​​という形式になります。\u00fdはラテン語です。

第2のアプローチ: 私はurllibライブラリを使用しようとしています。

URL = 'https://abcXXXXXXXX.com/' 
username = b'kebXXXXXXXXX' 
password = b'XXXb8thXXXXpb8thXX' 
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '') 

しかし、base64文字列は私にエラーをもたらします:予想されるバイトのようなオブジェクトで、strではありません。私は、さまざまな情報源では解決策を見つけることができませんでした。誰かが私に教えることができるなら、それを行うための最良の方法は何でしょうか。最終的な目標は、JSONデータを読み込んでファイルに保存し、パンダやデータフレームで読み込んでテキスト解析を行うことです。 PythonまたはRソリューションは問題ありません。

データ(サンプル)のようになります。あなたが気づいていない

[ 
"messages": [ 
      { 
      "type": "agent", 
      "name": "", 
      "from": null, 
      "content": "Hezký den, potřebujete poradit s výběrem eliptického trenažeru?", 
      "sentAt": 1509526170320, 
      "triggeredBy": "Eliptický trenažér", 
      "email": null 
      } 
      ] 
] 

答えて

0

場合は、requests結果オブジェクトは.json() methodを持っています。これは、結果がjson形式で返されたと仮定して、自動的にコンテンツをデコードします。一部のAPIでは、余分なヘッダーが必要です。彼らはしている場合、ヘッダーは必要ありませんか

print(requests.get(url, auth=(username, password), headers={'Accept': 'application/json'}).json()) 

場合は、書いたライン、

print(requests.get(url, auth=(username, password)).content) 

print(requests.get(url, auth=(username, password)).json()) 

のようなものに変更します。

関連する問題