gpt4 book ai didi

python - 将 JSON 字符串转换为 Python 字典

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:29 24 4
gpt4 key购买 nike

我在 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]) 抛出了“Expected string or buffer”异常,而 temp_json 是一个只包含一个元素的列表,所以我没有我想我不会从 temp_json[0][0] 得到任何东西。

希望对其他人也有帮助!

关于python - 将 JSON 字符串转换为 Python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34229363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com