2017-06-25 1 views
1

Ich versuche, Anfragen zu verwenden, um JSON mithilfe von Variablen an eine API zu senden. Wenn hart codiert es funktioniert gut (IE „Videos“: „30“ oder „Ansichten“: „100“), aber jetzt, dass ich es mit Zugriffe auf Variablen ersetzt mit dem Server antwortet:Verwenden von Variablen mit JSON mit Python-Anforderungen

{u'message': u"'vars' parameter is not a valid JSON"} 

Hier ist mein Code:

return requests.post(
    "https://api.website.com", 
    auth=('api', 'XXXXXXXXXXXXX'), 
    data={'subscribed': True, 
      'address': email, 
      'name': username, 
      'description': profile, 
      'vars': '{"logo" : logo , "status" : status , "videos": videos , "views": views , "likes": likes}' }) 
+0

Es ist, weil Sie es wirklich nicht durch Variablen ersetzt haben, sie sind noch Zeichenfolgen. Das 'Logo' in der Zeichenfolge ist nur die Zeichenfolge 'logo', keine Referenz auf Ihre Variable. – pvg

Antwort

2

JSON nicht manuell erzeugen. Verwenden Sie das eingebaute JSON-Modul.

import json 
data={'subscribed': True, 
     'address': email, 
     'name': username, 
     'description': profile, 
     'vars': json.dumps({"logo" : logo , "status" : status , "videos": videos , "views": views , "likes": likes}) }) 
Verwandte Themen