私がする時:
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)
私は得る
{u'city': u'London',
...
}
そして、私がPOST Parse.comにそれをしようとするとき、私は得ているので、それは有効なJsonではありません
{"code":107,"error":"invalid JSON"}
そしてJSONバリデーターは私にError:Strings should be wrapped in double quotes.
data
の有効なJSONを作成する方法
print
は、渡したオブジェクトのpython表現(json.load
で逆シリアル化したもの)を出力するだけです。これを試して:
import sys, json;
data = json.load(sys.stdin)
for station in data["data"]:
print(json.dumps(station))
json.dumps
は、pythonオブジェクトをシリアライズしてjsonに戻します。
あなたは何を誤解しましたjson.load
は:それをデシリアライズ JSONから、つまり、Python JSON文字列からオブジェクトを作成します。
しかし、私はあなたが何をしているのか本当に理解できません。すでに標準入力からJSONが渡されている場合、なぜそれを変換しようとしているのですか?それを直接APIに渡します。