Próbowałem dowiedzieć się, jak załadować obiekty JSON w Pythonie.Python json.loads nie działa
def do_POST(self):
length = int(self.headers['Content-Length'])
decData = str(self.rfile.read(length))
print decData, type(decData)
"{'name' : 'journal2'}" <type 'str'>
postData = json.loads(decData)
print postData, type(postData)
#{'name' : 'journal2'} <type 'unicode'>
postData = json.loads(postData)
print postData, type(postData)
# Error: Expecting property name enclosed in double quotes
Gdzie się mylę?
Kod błędu (JScript):
var data = "{'name':'journal2'}";
var http_request = new XMLHttpRequest();
http_request.open("post", url, true);
http_request.setRequestHeader('Content-Type', 'application/json');
http_request.send(data);
prawda Code (JScript):
var data = '{"name":"journal2"}';
var http_request = new XMLHttpRequest();
http_request.open("post", url, true);
http_request.setRequestHeader('Content-Type', 'application/json');
http_request.send(JSON.stringify(data));
prawda Code (Python):
def do_POST(self):
length = int(self.headers['Content-Length'])
decData = self.rfile.read(length)
postData = json.loads(decData)
postData = json.loads(postData)
to nie jest w porządku, 'eval (dane)' może uzyskać prawidłowy wynik – WeizhongTu
To prawda, ale nie powinieneś używać eval() Myślę, że to jest pomysł użycia modułu json. Użyj eval jest uważane za złą praktykę, I to jest interesująca odpowiedź na ten temat http://stackoverflow.com/a/1832957/2289246 –