2016-08-29 7 views
-1

私はPythonで初心者だとコード期待値:行1列1(CHAR 0)のpython

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

のこれらの行を使用して自分のアプリケーション内のデータを解析しようとしている。しかし、私はjson.loadsにこのエラーを取得していますこれは私が角度アプリ(更新)から送信JSON形式のデータである行1列1(CHAR 0)

:値を期待

オブジェクト{ClientTypeId:6、ClientName: "asdasd"、ClientId:0、PhoneNo: "123"、FaxNo: "123"、NTN: "1238"、GSTNumber: "1982"、OfficialAddress: "sads 」、MailingAddress: "asdasd"、RegStartDate: "17-8月-2016"、15以上...}

これらは私がjson_str

ClientTypeId = 5 & CLIENTNAME = asdasdに入る値は、 & ClientId = 0 & PhoneNo = 123 & FaxNo = 123 & NTN = 123 & GSTNumber = 12 & OfficialAddress = adkjh & MailingAddress = adjh & RegStartDate = 09日 - 8月 - 2016 & RegEndDate = 16日 - 8月 - 2016 &ステータス= 1 & CanCreateUser =真& UserQuotaFor = 11 & UserQuotaType = 9 & MAXUSERS = 132123 & ApplyUserCharges =真& ApplyReportCharges =真& EmailInvoice =真& BillingType = 1 & UserCharges = 132 & ReportCharges = 123 & MonthlyCharges = 123 & BillingDate = 16日 - 8月 - 2016 & UserSessi onId = 324

私は何が間違っているのかわかりません。誰もが間違いだと言えるのですか?

+2

これはJSONではありません... – deceze

+1

明らかに 'json_str'はJSONエンコードされたデータだと思いますか?あなたのコードで何を達成したいですか? –

+0

なぜこのように変換しているのか分かりません。私は私の角度のアプリケーション(チェックされた部分を確認)からjsonの値を送信しています –

答えて

2

あなたのデータはJSON-formattedではありません。更新された回答に含まれているデータでもありません。データはJavaScriptオブジェクトであり、エンコードされた文字列ではありません。 JSON:Notationの "N"に注意してください。これはJavaScriptコードでのデータの書式に基づいた形式ですが、ランタイムJavaScriptデータはJSONでは表現されません。あなたがペーストした "JSON"は、あなたのブラウザがあなたのオブジェクトを表す方法です。それは適切なJSONではありません({"ClientTypeId": 6, ...} - プロパティ名の引用符に注意してください)。

このデータをサーバーに送信するときは、エンコードする必要があります。 JSONでエンコードされたものを送信していると思われますが、そうではありません。あなたはそれを "ウェブフォームエンコード"(タイプapplication/x-www-form-urlencodedのデータ)として送信しています。

ここで、JSON形式のデータをAngularから送信する方法、またはPythonで適切な解析ルーチンを使用する方法(urllib.parse.parse_qs)を学ぶ必要があります。使用しているライブラリによっては、データにアクセスする便利な方法もあります。これはよくあるケースです。

+1

...またはおそらく、あなたがすでに解析されたデータに直接アクセスできるようにする 'request'メソッドがあります。 – deceze

+1

@decezeはい、おそらく。私は推測する誘惑を拒否しました:) - あなたは手元の文書へのリンクを持っていますか? –

+1

OPが正確にどのライブラリを使用しているかわからないので、私も推測することを拒否します。 – deceze

関連する問題