解決できない奇妙な問題に遭遇しました。
私の Django アプリには、JSON オブジェクトを送信する Java アプレットから POST がヒットするメソッドがあります。Django メソッドは次のように解析します。
req = json.loads(request.raw_post_data)
結果に基づいて値を返します。私はこのコードを書いていませんが、昨日、このメソッドでトリガーされたエラーを調査するために派遣されました。「ValueError: Expecting property name: line 1 column 1 (char 1)」があったと言っていた。
私が発見したのは、生の投稿データが次のようになっていることです。
{#012#011"ImmutableMachineFactors": #012#011{#012#011#011"machineName": "lukka",#012#011#011"osName": "MacOS"}}
そのタイプは文字列でしたが、これらの奇妙な文字をスペースに置き換えるか、何も失敗しませんでした。sub() コマンドを無視するだけです。raw_post_data がバイト文字列を返すことは知っていますが、次を使用して通常の文字列に変換しようとしたとき:
mystring.decode('utf-8')
u'' 表記は追加されましたが、これらの奇妙な文字は削除されませんでした。見知らぬ人は、多くの場合 (私の個人的なマシンで)、Django はこの種のデータを JSON に喜んで変換しますが、時々失敗するだけで、エラーを引き起こした JSON が不正な形式であると信じるようになりました。 #011 と #012 のすべての文字が完全に解析されました。
私の質問は次のとおりです。1) それらのクレイジーなものは何ですか? (#011、#012)。グーグルで検索してみましたが、これらは検索で見つかる非常に一般的なものであるため、関連するものは見つかりませんでした. 2) このバイト文字列を通常の文字列に変換して、これらの文字を置き換えるにはどうすればよいですか? それとも、この問題にアプローチするのは難しい方法ですか?
ありがとう!ルカ