2016-08-29 6 views
-1

Ich bin Neuling in Python und versuchen, Daten in meiner Anwendung zu analysieren, indem diese Zeilen von CodesExpecting Wert: Zeile 1, Spalte 1 (char 0) Python

json_str = request.body.decode('utf-8') 
py_str = json.loads(json_str) 

Aber ich erhalte diese Störung auf json.loads

erwartend Wert: Zeile 1 Spalte 1 (char 0)

diese json Daten formatiert wird, die ich von Winkel app senden (aktualisiert)

Object {ClientTypeId: 6, Kundenname: "asdasd", ClientId: 0, PHONENO: "123", FaxNo: "123", NTN: "1238", GSTNumber: "1982", OfficialAddress: „SADs “MailingAddress: "asdasd", RegStartDate: "17-Aug-2016", 15 mehr ...}

das sind die Werte, die ich in json_str

ClientTypeId = 5 & Client = asdasd erhalten & ClientId = 0 & Telefonnummer = 123 & FaxNr = 123 & NTN = 123 & GSTNumber = 12 & OfficialAddress = adkjh & MailingAddress = adjh & RegStartDate = 09-Aug-2016 & RegEndDate = 16-Aug-2016 & Status = 1 & CanCreateUser = true & UserQuotaFor = 11 & UserQuotaType = 9 & MaxUsers = 132123 & ApplyUserCharges = true & ApplyReportCharges = true & EmailInvoice = true & BillingType = 1 & UserCharges = 132 & ReportCharges = 123 & MonthlyCharges = 123 & BillingDate = 16-Aug-2016 & UserSessi onId = 324

Ich weiß nicht, was darin falsch ist .. kann jemand erwähnen, was der Fehler ist ??

+2

Nun, das ist nicht JSON ... – deceze

+1

Warum denken Sie, dass 'json_str' JSON-codierte Daten sind, wenn es eindeutig nicht ist? Was möchten Sie mit Ihrem Code erreichen? –

+0

Ich weiß nicht, warum es so konvertiert.Ich sende Json-Werte von meiner eckigen App (überprüfen Sie aktualisierten Teil) –

Antwort

2

Ihre Daten sind nicht JSON-formatted, nicht einmal die, die Sie in Ihre aktualisierte Antwort aufgenommen haben. Ihre Daten sind ein JavaScript-Objekt, keine codierte Zeichenfolge. Bitte beachten Sie das "N" in JSON: Notation - es ist ein Format, das davon inspiriert ist, wie Daten in JavaScript-Code geschrieben werden, aber Laufzeit-JavaScript-Daten werden in JSON nicht dargestellt. Die "JSON", die Sie eingefügt haben, ist, wie Ihr Browser das Objekt für Sie darstellt, es ist nicht richtig JSON (das wäre {"ClientTypeId": 6, ...} - beachten Sie die Anführungszeichen um den Namen der Eigenschaft).

Wenn Sie diese Daten an den Server senden, müssen Sie sie verschlüsseln. Sie denken, Sie senden es JSON-codiert, aber Sie sind nicht. Sie senden es "web-codiert" (Daten vom Typ application/x-www-form-urlencoded).

Jetzt müssen Sie entweder lernen, wie Sie die Daten im JSON-Format von Angular senden, oder verwenden Sie die richtige Parsing-Routine in Python: urllib.parse.parse_qs. Je nach verwendeter Bibliothek gibt es möglicherweise auch eine bequeme Methode, um auf die Daten zuzugreifen, da dies ein häufiger Anwendungsfall ist.

+1

... oder vermutlich gibt es eine Methode auf 'request', die Dir direkten Zugriff auf die geparsten Daten erlaubt ... – deceze

+1

@deceze Ja, vermutlich. Ich lehnte die Versuchung ab zu raten :) - Haben Sie einen Link zu den vorliegenden Dokumenten? –

+1

Ich weiß nicht, welche Bibliothek das OP genau benutzt, aber ich weigere mich auch. – deceze

Verwandte Themen