0
私はAPIを介してJSONデータをインポートしようとしており、インポートしたデータを使ってDataFrameを構築しようとしています。api経由でjsonデータをインポートするときに "TypeError:expected string or buffer"を解決するにはどうすればいいですか?
import json
import pandas as pd
import numpy as np
import requests
api_username = 'acb'
api_password = 'efg'
germany_name = 'Germany'
germany_api_url = "https://api.country_data.com/stats/?country=" + germany_name + "&year=2014"
germany_api_resp = requests.get(germany_api_url,auth=(api_username,api_password))
germany_data_json = json.loads(germany_api_resp)
germany_frame = pd.DataFrame(germany_data_json['data']).set_index('tag')
print(germany_frame)
が私に希望するDataFrameを表示します。
私だけではなく'Germany'
、多くの国のためのプロセスを繰り返したいので、私はこのような国オブジェクトを作成:
Germany = Country('Germany')
:このように、私は私の最初のオブジェクトを作成すると
class Country(object):
def __init__(self,name):
self.name = name
self.api_url = "https://api.country_data.com/stats/?country=" + name + "&year=2014"
self.api_resp = requests.get(self.api_url,auth=(api_username,api_password))
self.data_json = json.loads(self.api_resp)
self.frame = pd.DataFrame(self.data_json['data']).set_index('tag')
を
エラーメッセージが表示されます:
TypeError: expected string or buffer
誰かがこの問題を解決できますか?
は大文字と小文字を区別しますか?この場合、 'Germany = Country( 'germany')' –
私はまだ同じ問題を抱えています。私は恐れます:( – Dongs14173
あなたは 'self.api_resp'で取得したデータを共有してください。コードを実行し、 'self.api_resp'オブジェクトを印刷して内容を確認してください。次の2行を別々に実行し、失敗した理由を確認してください。 –