2017-10-09 10 views
0
import base64 
import requests 

USERNAME, PASSWORD = 'notworking', 'notworking' 

def send_request(): 
    # Request 

    try: 
     response = requests.get(
      url="https://api.mysportsfeeds.com/v1.1/pull/nhl/2017-2018-regular/cumulative_player_stats.{format}", 
      params={ 
       "fordate": "20171009" 
      }, 
      headers={ 
       "Authorization": "Basic " + 
        base64.b64encode('{}:{}'.format(USERNAME,PASSWORD)\ 
             .encode('utf-8')).decode('ascii') 
      } 
     ) 
     print('Response HTTP Status Code: {status_code}'.format(
      status_code=response.status_code)) 
     print('Response HTTP Response Body: {content}'.format(
      content=response.content)) 
    except requests.exceptions.RequestException: 
     print('HTTP Request failed') 

このコードでは、mysportsfeeds.comからデータを取得できます。最終的には、send_requestの出力を機能させ、openpyxlライブラリの.xlsxファイルでフォーマットする必要があります。最も扱いやすい形式、つまりcsvまたはjson形式の出力がわかりません。CSVまたはJSON形式

その優れたwebsiteは、cumulate_player_statsの出力を取得する方法を示します。

例えば

{format}はどちらかcsvまたはjson

質問です

https://api.mysportsfeeds.com/v1.1/pull/nhl/2016-2017-regular/cumulative_player_stats.{format} 

:より良い選択である何

:それようcsv形式での出力は、json形式をOU openpyxl libとうまくいくでしょうか?誰でも(csvライブラリを使用)とjsonjsonライブラリを使用)で動作する方法を教えてもらえますか?openpyxl

+0

使用する形式は個人的な好みになります。 csvやjsonがopenpyxlでうまく動作するかどうかを考えるのではなく、逆方向に作業する... openpyxlを出力するために必要な形式を調べる(リストや辞書など) jsonやcsvを使ってその形式にすることができます。個人的には、CSVは簡単ですが、データに依存します。 – user3354059

+1

データをCSV形式で要求すると、データをExcelフォーマットにシームレスにダンプできます。 – blakev

+0

JSONは、外来フォーマットパラメータを持たない標準です。 CSVは、「標準についてのすばらしいことは、選択すべきものがたくさんある」という例です。また、ライターは、リーダ、文字エンコーディング、行区切り文字、フィールド区切り文字、テキスト修飾子、テキスト修飾子エスケープメカニズム、ヘッダー行の有無、各列の種類などと通信する必要があります。いくつかのプログラムは、そのようなことを推測するのに適していますが、しばしば人間の現場の指導に基づいています。 –

答えて

0

Excelは、行ベースのファイル形式です。これは行ベースのCSVを示唆します。しかし、CSVファイルはテキストのみであり、タイプ情報がないことを意味し、「9/10/17」は10月9日(20)17日、9月10日(20日)17日、9日/ 10/17 "である。

JSONは少なくともタイプですが、一度にメモリに読み込む必要があります。リストの単なるリストであると仮定すると、Excelのワークシートには10​​0万行以上の行があるわけではないので、おそらくここで最適なオプションになります。