TypeError: Das JSON-Objekt muss str sein, nicht 'Response' mit Python 3.4

Ich bekomme diesen Fehler und ich kann nicht herausfinden, was das Problem ist:

Traceback (most recent call last): File "C:/Python34/Scripts/ddg.py", line 8, in <module> data = json.loads(r) File "C:\Python34\lib\json\__init__.py", line 312, in loads s.__class__.__name__)) TypeError: the JSON object must be str, not 'Response' 

Das ist mein Code:

 import requests, json search_q = input('Enter query: ') r = requests.get('https://api.duckduckgo.com/?q=%s&format=json&pretty=1' % search_q) if r.status_code == requests.codes.ok: data = json.loads(r) node = data['RelatedTopics']['Result'] print (str(node)) else: bad_r.raise_for_status() 

  • Wie kann man die Syntax der Pythonlistenindizierung ändern?
  • Tkinter, python, knöpfe
  • Sollte ich Cache-Bereich Ergebnisse, wenn ich sie wiederverwenden?
  • Wie man verschachtelte listen
  • Ist es ein xpath (lxml) Bug?
  • Verwenden von unittest.mock zum Patch-Eingabe () in Python 3
  • Kann Scrapy nicht auf Windows einrichten
  • Anfügen von Variablen an Textdatei funktioniert nicht in Python
  • 2 Solutions collect form web for “TypeError: Das JSON-Objekt muss str sein, nicht 'Response' mit Python 3.4”

    Keine Notwendigkeit, den JSON manuell zu laden; Die Antwort hat eine json Methode.

     data = r.json() 

    Sie machen json.loads(r) und r ist nicht ein str so json.loads() weiß nicht, was damit zu tun ist.

    Im allgemeinen Fall müssen Sie einen String übergeben, der gültiges JSON zu json.loads() ; Obwohl es oft ein Python-Objekt irgendeiner Art ist, wird es in der Regel Attribute (oder Methoden, um Attribute aus seiner internen Repräsentation zu extrahieren), die du von Python behandeln kannst und so in JSON umwandeln kannst, also kannst du es umwandeln Zu einem Python-Objekt macht keinen Sinn.

    Python ist die beste Programmiersprache der Welt.