質問編集履歴

2 誤字修正・追加

InpactSumo

InpactSumo score 10

2018/03/26 08:23  投稿

PythonのRequestsを使ったAPIについて
環境
os:Windows10
ver:Python3.6.1
APIよりリクエストでデータを取得します。
5秒おきに繰り返して同内容を取得、"id"、"id2"は毎に変わります。
*****.jsonは取得毎に"id"、"id2"に準じて名前は変えてます。
url = "https://***************************"
querystring = {"Id":"******","Id2":"******","from":****,"to":****}
headers = {"Accept": "application/json"}response = requests.request("GET", url, headers=headers, params=querystring)
f = open(*****.json, 'w')# 書き込みモードで開く
f.writelines(response.text)# シーケンスが引数。
f.close()
結果、何故か*****.jsonの内容が重複してしまいます。
解決策あればご教示頂けると幸いです。
補足:この後にpandasを使ってjson → csv変換してます。
3/26追記
以下のような取得を繰り返して取得した場合に1111_2222.jsonの内容が3333_4444.jsonの取得内容に反映されてしまいます。
#-------------------------------------------------------------id1111
#id1111
url = "https://***************************"
querystring = {"Id":"1111","Id2":"2222","from":****,"to":****}
headers = {"Accept": "application/json"}response = requests.request("GET", url, headers=headers, params=querystring)
f = open(1111_2222.json, 'w')# 書き込みモードで開く
f.writelines(response.text)# シーケンスが引数。
f.close()
#-------------------------------------------------------------id3333
#id3333
url = "https://***************************"
querystring = {"Id":"3333","Id2":"4444","from":****,"to":****}
headers = {"Accept": "application/json"}response = requests.request("GET", url, headers=headers, params=querystring)
f = open(1111_2222.json, 'w')# 書き込みモードで開く
f = open(3333_4444.json, 'w')# 書き込みモードで開く
f.writelines(response.text)# シーケンスが引数。
f.close()
f.close()
取得された内容が以下のようになってしまいます。
<1111_2222.json>
1111 25253
1111 23555
<3333_4444.json>
1111 25253
1111 23555
  • API

    2293 questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

  • Python 3.x

    13788 questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1 情報追加

InpactSumo

InpactSumo score 10

2018/03/26 08:19  投稿

PythonのRequestsを使ったAPIについて
環境
os:Windows10
ver:Python3.6.1
APIよりリクエストでデータを取得します。
5秒おきに繰り返して同内容を取得、"id"、"id2"は毎に変わります。
*****.jsonは取得毎に"id"、"id2"に準じて名前は変えてます。
url = "https://***************************"
querystring = {"Id":"******","Id2":"******","from":****,"to":****}
headers = {"Accept": "application/json"}response = requests.request("GET", url, headers=headers, params=querystring)
f = open(*****.json, 'w')# 書き込みモードで開く
f.writelines(response.text)# シーケンスが引数。
f.close()
結果、何故か*****.jsonの内容が重複してしまいます。
解決策あればご教示頂けると幸いです。
補足:この後にpandasを使ってjson → csv変換してます。
補足:この後にpandasを使ってjson → csv変換してます。
3/26追記
以下のような取得を繰り返して取得した場合に1111_2222.jsonの内容が3333_4444.jsonの取得内容に反映されてしまいます。
#-------------------------------------------------------------id1111
url = "https://***************************"
querystring = {"Id":"1111","Id2":"2222","from":****,"to":****}
headers = {"Accept": "application/json"}response = requests.request("GET", url, headers=headers, params=querystring)
f = open(1111_2222.json, 'w')# 書き込みモードで開く
f.writelines(response.text)# シーケンスが引数。
f.close()
#-------------------------------------------------------------id3333
url = "https://***************************"
querystring = {"Id":"3333","Id2":"4444","from":****,"to":****}
headers = {"Accept": "application/json"}response = requests.request("GET", url, headers=headers, params=querystring)
f = open(1111_2222.json, 'w')# 書き込みモードで開く
f.writelines(response.text)# シーケンスが引数。
f.close()
  • API

    2293 questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

  • Python 3.x

    13788 questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る