在jthon中将json字符串转换为dict

时间:2015-05-20 13:28:58

标签: python json

我在request.body中得到一个值,就像:

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

3 个答案:

答案 0 :(得分:2)

您收到的数据格式不正确JSON。在使用json模块转换它之前,您将不得不进行一些解析或数据转换。

如果你知道数据总是以文字字符串'[data='开头并且总是以文字字符串']'结尾,并且其余数据是有效的json,你可以简单地剥离有问题的人物:

b = json.loads(a[6:-1])

如果无法保证数据的格式正确,那么您必须了解实际格式是什么,并进行更智能的解析。

答案 1 :(得分:0)

它不是您收到的有效json格式。 有效格式为:

'{"data":{"vehicle":"rti","action_time":"2015-04-21 14:18"}}'

答案 2 :(得分:0)

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