json APIを解析するためのPythonアプリケーションを作成しました。
3つのエンドポイントと1つのこれらの心配私があります。
エンドポイントは次のとおりです。http://coinmarketcap.northpole.ro/history.json?coin=PCNJsonを解析するとエラーが発生する
マイコード:私はh['price']['usd']
を取得しようとすると
def getHistory(self, coin):
endpoint = "history.json?year=2017&coin=PCN"
data = urllib2.urlopen(self.url + endpoint).read()
data = json.loads(data)['history']
return data
def getOrder(self):
for c in self.getCoinsList():
res = []
symbol = c['symbol']
price = self.getCoinPrice(symbol)
count = 0
count_days = len(self.getHistory(symbol))
for h in self.getHistory(symbol):
if h['price']['usd'] > price:
++count
percent_down = count_days/count * 100
line = {'symbol': symbol, 'price': price, 'percent_down': percent_down}
res.append(line)
return res
私はこれを持っている:私はprint type(h)
を行うと
File "coinmarketcap.py", line 39, in getOrder
if h['price']['usd'] > price:
TypeError: string indices must be integers
それはユニコードを返します。
を使用して試してみてくださいエラーは、文字列インデックスは整数でなければならないことを示します。他の文字列を使用して文字列のインデックスを作成しようとしています。 – SuperShoot
しかし私はh ['prices'] ['usd']を手に入れたいのですが、どうすればいいのですか? – Pixel
私は 'getHistory'がdictを返すと仮定しています。これについては、' for h in self.getHistory(symbol) 'のように繰り返します。これは_values_ではなく、dict _keys_を提供します。 self.getHistory(シンボル).values()で 'for h 'を試してください。 –