Python的json.load(sys.stdin)让我'''而不是字符串的双引号

Mar*_*och 9 python json parse-platform

当我做:

import sys, json;
import requests

headers = {'Content-Type': 'application/json',
       'X-Parse-Application-Id': '...',
       'X-Parse-REST-API-Key': '...'}

data = json.load(sys.stdin)
for station in data["data"]:
    print station
    res = requests.post('https://api.parse.com/1/classes/test4', data=station, headers=headers)
Run Code Online (Sandbox Code Playgroud)

我明白了

{u'city': u'London',
...
}
Run Code Online (Sandbox Code Playgroud)

当我尝试将它发布到Parse.com时,它不是一个有效的Json

{"code":107,"error":"invalid JSON"}
Run Code Online (Sandbox Code Playgroud)

任何JSON验证器都给了我 Error:Strings should be wrapped in double quotes.

如何制作有效的JSON data

小智 18

print()将只打印python表示您传递的对象(使用json.load进行反序列化).试试这个:

import sys, json;
data = json.load(sys.stdin)
for station in data["data"]:
    print(json.dumps(station))
Run Code Online (Sandbox Code Playgroud)

json.dumps将python对象序列化回json.