我得到的request.body一個值,快譯通,它是這樣的:轉換JSON字符串在python
a = '[data={"vehicle":"rti","action_time":"2015-04-21 14:18"}]'
type(a) == str
我想轉換此str
到dict
。我有這樣
b=json.loads(a)
嘗試,但我得到的錯誤
ValueError: No JSON object could be decoded
我得到的request.body一個值,快譯通,它是這樣的:轉換JSON字符串在python
a = '[data={"vehicle":"rti","action_time":"2015-04-21 14:18"}]'
type(a) == str
我想轉換此str
到dict
。我有這樣
b=json.loads(a)
嘗試,但我得到的錯誤
ValueError: No JSON object could be decoded
這是不是您收到一個有效的JSON格式。 有效格式的類型爲:
'{"data":{"vehicle":"rti","action_time":"2015-04-21 14:18"}}'
這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 – ZdaR
我對這個問題的理解是爲什麼一旦他嘗試加載字符串時,他會得到一個ValueError。我認爲這是一個有效的答案,它表明尋找可以採取任何一種方式的解決方案:如果他有控制權,或者試圖找到替代解決方案併發布具體問題(如果失敗),請實施有效答案。 – chaos
這確實回答了這個問題。 OP不能JSON解碼響應的原因是因爲它不是有效的JSON。 – cpburnz
import json
a = '[data={"vehicle":"rti","action_time":"2015-04-21 14:18"}]'
r = a.split("=")
r[:] = r[0].replace("[", ""), r[1].replace("]", "")
d = '{"%s":%s}'%(r[0],r[1])
dp = json.loads(d)
print dp
a就是這樣 - a ='[data = {'':''}]' –
#nilay_gupta should work –
您收到的數據格式不正確JSON。在使用json模塊進行轉換之前,您必須先進行一些解析或數據轉換。
如果您知道數據始終與文字字符串'[data='
開始,並一直使用該文本字符串']'
結束,該數據的其餘部分是有效的JSON,你可以簡單地剝離存在問題的字符:
b = json.loads(a[6:-1])
如果無法保證數據的格式正確,則必須瞭解實際格式,並進行更智能的分析。
因爲這不是json。 'data = ...'是無效的語法 – JBernardo
它不是json格式。 – Zealous
這是正在獲取發佈請求的數據。數據僅以這種格式提供,並將其作爲request.body使用。這就是爲什麼它會造成一個問題。 –