将JSON字符串转换为Python字典

阿里·卡海伊

我在Python方面经验不足,在转换sql查询数据时遇到了问题,从技术上讲,这是一个将JSON字符串包含在Python字典中的列表。我正在查询sqlite3数据库,它返回的数据是这样的:

def get_answer(self, id):
    self.__cur.execute('select answer from some_table where id= %s;' % id)
    res_data = self.__cur.fetchall()
    return res_data

数据是单个JSON格式元素,其简化版本如下所示:

[
 {"ind": [ {"v": 101}, {"v": 102}, {"v": 65 }]},
 {"ind": [ {"v": 33}, {"v": 102}, {"v": 65}]}
]

但是,当我尝试使用以下代码将res_data转换为JSON时:

temp_json = simplejson.dumps(get_answer(trace_id))

它返回一个字符串,当我得到len(temp_json)时,它返回res_data中的字符数而不是res_data中的对象数。但是,如果我在get_answer(trace_id)返回的值上使用Visual Studio的JSON可视化程序,它将正确显示每个对象res_data。

我还尝试使用以下代码将res_data转换为字典:

dict_data = ast.literal_eval(Json_data)

或者

dict_data = ast.literal_eval(Json_data[0])

在这两种情况下,都会引发“格式错误的字符串”异常。我试图将其写到文件中并以JSON的形式读回,但没有成功。

在此之前,我将副本手动粘贴并使用了res_data:

with open(file_name) as json_file:
    Json_data = simplejson.load(json_file)

它就像一种魅力。我一直在尝试用SO和其他地方陈述的不同方法,但是尽管问题似乎很直接,但是我仍然没有找到解决方案,因此非常感谢您的帮助。

阿里·卡海伊

好的,我终于找到了解决方案:

states = json.loads(temp_json[0][0])

一个令人困惑的问题是states = json.loads(temp_json[0])抛出了“预期的字符串或缓冲区”异常,并且temp_json是仅包含一个元素的列表,因此我认为我不会从temp_json [0] [0]中得到任何东西。

我希望它也能帮助其他人!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将JSON字符串转换为C#字典

来自分类Dev

将字典转换为url参数字符串?

来自分类Dev

将字符串转换为字典

来自分类Dev

将Ruby哈希字符串转换为Python字典

来自分类Dev

将字典字符串字符串转换为json字符串

来自分类Dev

C#将字符串转换为字典

来自分类Dev

将Swift字典转换为字符串

来自分类Dev

VBA:将字典项目转换为字符串数组?

来自分类Dev

将python字符串转换为字典

来自分类Dev

将字符串值从腌制转换为字典

来自分类Dev

如何将字符串转换为字典或列表?

来自分类Dev

将空字典转换为空字符串

来自分类Dev

如何将字符串转换为python中转义特殊字符的字典

来自分类Dev

将冒号分隔的字符串转换为PowerShell字典

来自分类Dev

将字符串转换为JSON

来自分类Dev

将字符串从JSON转换为字典或元组

来自分类Dev

Python-如何将类似字典的字符串转换为字典

来自分类Dev

将JSON字符串转换为C#字典

来自分类Dev

Python将Json转换为字符串解码

来自分类Dev

将字符串从外部文件转换为Python字典

来自分类Dev

将字典字符串字符串转换为json字符串

来自分类Dev

将字符串转换为Python字典列表

来自分类Dev

Python3-将字符串转换为字典

来自分类Dev

Python-将字符串转换为字典

来自分类Dev

将Python对象转换为JSON字符串

来自分类Dev

如何使用python将字符串转换为字典(格式错误的字符串)

来自分类Dev

将字符串转换为python列表和字典?

来自分类Dev

将字符串转换为字典?

来自分类Dev

将包含字典的字符串转换为字典列表