我有一個奇怪的問題絆倒raw_post_data解碼,我解決不了:問題與在Django
在我的Django應用程序有它獲取由Java小程序一個POST打了一個方法,它發送一條JSON對象。 Django方法如下解析它:
req = json.loads(request.raw_post_data)
並根據結果返回一個值。我沒有寫這段代碼,但昨天我發送了一個調查在這個方法中觸發的錯誤。這是說有「ValueError:期望屬性名稱:第1行第1(字符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)如何將此字符串轉換爲常規字符串,以便我可以替換這些字符?或者這是解決這個問題的方法嗎?
謝謝! Luka
我可以回答你的第一個問題,但我自己有第二部分的問題......這導致我找到你的帖子。因此,#012例如是換行符的ascii Oct值,或\ n,而#011是標籤的ascii Oct值或\ t。 (見http://www.asciitable.com/)。 – bhcastle