我不太熟悉Python,遇到了一个问题:将SQL查询数据转换为Python字典。这些数据实际上是包含JSON字符串的列表。我正在查询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中字符的数量而不是对象的数量。但是,如果我在Visual Studio中使用JSON可视化器查看get_answer(trace_id)返回的内容,则可以正确显示每个对象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)
它很顺利地工作了。我一直在尝试不同的方法,包括Stack Overflow和其他地方提到的方法,但是虽然问题看起来很简单,但我仍然没有找到解决方案,因此非常感谢您的帮助。