Ho cercato di capire come caricare oggetti JSON in Python.Python json.loads non funziona
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
Dove sto andando male?
Codice di errore (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);
Vero Codice (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));
Vero Codice (Python):
def do_POST(self):
length = int(self.headers['Content-Length'])
decData = self.rfile.read(length)
postData = json.loads(decData)
postData = json.loads(postData)
questo non è giusto, 'eval (data)' può ottenere il risultato corretto – WeizhongTu
Questo è vero ma non si dovrebbe usare eval() penso che sia l'idea di usare il modulo json. Utilizzare eval è considerato una cattiva pratica, questa è una risposta interessante a riguardo http://stackoverflow.com/a/1832957/2289246 –