2017-12-17 27 views
0

私は約10年前にPythonで経験したことがありません。私はOMDB APIからデータを読み込み、Python 2.7.14でエラーを取得しようとしています。JSONをダンプしようとしたときにエラーが発生しました

これは返されるべきものの一例である:

> {"Title":"The Matrix","Year":"1999","Rated":"R","Released":"31 Mar 
> 1999","Runtime":"136 min","Genre":"Action, Sci-Fi","Director":"Lana 
> Wachowski, Lilly Wachowski","Writer":"Lilly Wachowski, Lana 
> Wachowski","Actors":"Keanu Reeves, Laurence Fishburne, Carrie-Anne 
> Moss, Hugo Weaving","Plot":"A computer hacker learns from mysterious 
> rebels about the true nature of his reality and his role in the war 
> against its 
> controllers.","Language":"English","Country":"USA","Awards":"Won 4 
> Oscars. Another 34 wins & 45 
> nominations.","Poster":"https://images-na.ssl-images-amazon.com/images/M/MV5BNzQzOTk3OTAtNDQ0Zi00[email protected]._V1_SX300.jpg","Ratings":[{"Source":"Internet 
> Movie Database","Value":"8.7/10"},{"Source":"Rotten 
> Tomatoes","Value":"87%"},{"Source":"Metacritic","Value":"73/100"}],"Metascore":"73","imdbRating":"8.7","imdbVotes":"1,354,586","imdbID":"tt0133093","Type":"movie","DVD":"21 
> Sep 1999","BoxOffice":"N/A","Production":"Warner Bros. 
> Pictures","Website":"http://www.whatisthematrix.com","Response":"True"} 

これは、これまでのところ、私のPythonコードです:

import requests 
API_KEY = '******' 
Movie = 'The Matrix' 
results = requests.get("http://www.omdbapi.com/", 
       params={'apikey': API_KEY, 't': Movie}) 

私は結果で取得します。

この段階の後にJSONをインポートした後、私は私にエラーを与える(結果)json.dumpsを実行しよう:

Traceback (most recent call last): 
    File "<pyshell#12>", line 1, in <module> 
    json.dumps(results) 
    File "C:\Python27\lib\json\__init__.py", line 244, in dumps 
    return _default_encoder.encode(obj) 
    File "C:\Python27\lib\json\encoder.py", line 207, in encode 
    chunks = self.iterencode(o, _one_shot=True) 
    File "C:\Python27\lib\json\encoder.py", line 270, in iterencode 
    return _iterencode(o, 0) 
    File "C:\Python27\lib\json\encoder.py", line 184, in default 
    raise TypeError(repr(o) + " is not JSON serializable") 
TypeError: <Response [200]> is not JSON serializable 

私はここで何をしないのですか?

+1

応答のボディはすでに* JSON文字列*ですが、なぜダンプする必要がありますか?そのJSONを表すPythonオブジェクトを 'response.json()' **にしたい場合は**を記述しますが、文字列を必要とする場合はデシリアライズするのは無意味です。実際に何を達成しようとしているのかは不明です。 – jonrsharpe

答えて

2

resultsは、strではありません。requests.models.Responseオブジェクトです。

import requests 
API_KEY = '******' 
Movie = 'The Matrix' 
results = requests.get("http://httpbin.org/get", 
       params={'apikey': API_KEY, 't': Movie}) 

data = results.json() 

print data 
+0

ありがとう!個々のJSONフィールドにどのようにアクセスすればよいですか? –

関連する問題