10

私は、オンライン API から情報を取得するアプリケーションをプログラミングしていますが、それについて助けが必要です。

私はリクエストを使用しており、現在のコードは次のとおりです

myData = requests.get('theapiwebsitehere.com/thispartisworking')
myRealData = myData.json()
x = myRealData['data']['playerStatSummaries']['playerStatSummarySet']['maxRating']
print x

その後、このエラーが発生します

myRealData = myData.json()                                                                                                                      
TypeError: 'NoneType' object is not callable

変数 maxRating にアクセスして出力できるようにしたいのですが、それができないようです。

ご協力いただきありがとうございます。

4

2 に答える 2

23

まず、最新バージョンのrequests(その 1.1.0) を使用していることを確認してください。以前のバージョンjsonでは、メソッドではなくプロパティでした。

>>> r = requests.get('https://api.github.com/users/burhankhalid')
>>> r.json['name']
u'Burhan Khalid'
>>> requests.__version__
'0.12.1'

最新バージョンでは:

>>> import requests
>>> requests.__version__
'1.1.0'
>>> r = requests.get('https://api.github.com/users/burhankhalid')
>>> r.json()['name']
u'Burhan Khalid'
>>> r.json
<bound method Response.json of <Response [200]>>

ただし、取得しているエラーは、URL が有効な json を返していないためでありNone、プロパティによって返されるを呼び出そうとしています。

>>> r = requests.get('http://www.google.com/')
>>> r.json # Note, this returns None
>>> r.json()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not callable

結論は:

  1. requests( pip install -U requests)のバージョンをアップグレードする
  2. URL が有効な JSON を返すことを確認してください
于 2013-01-27T02:10:36.293 に答える
1

まず、myData は実際に何かを返しますか?

そうであれば、 .json() 関数を使用するのではなく、次のことを試すことができます

Json パッケージをインポートし、テキストで Json ロード関数を使用します。

import json
newdata = json.loads(myData.text())
于 2013-01-27T02:03:18.753 に答える