Python 如何将JSON MySQL列查询到dict中?

Python 如何将JSON MySQL列查询到dict中?,python,json,pymysql,Python,Json,Pymysql,我的数据库如下所示: CREATE TABLE my_TABLE(不相关的_列文本,json_stuff json); 我正在寻找一种优雅的方法,将JSON数据从MySQL查询到DICT列表中 我试过使用游标 cursor = connection.cursor( pymysql.cursors.DictCursor ) cursor.execute( "SELECT json_stuff FROM my_table" ) rows = cursor.fetchall() 但它不能正确处理J

我的数据库如下所示:

CREATE TABLE my_TABLE(不相关的_列文本,json_stuff json);
我正在寻找一种优雅的方法,将JSON数据从MySQL查询到DICT列表中

我试过使用
游标

cursor = connection.cursor( pymysql.cursors.DictCursor )
cursor.execute( "SELECT json_stuff FROM my_table" )
rows = cursor.fetchall()
但它不能正确处理JSON列类型。它返回以下内容:

[
  { "json_stuff": "<json_stuff row 1 in string format>" },
  { "json_stuff": "<json_stuff row 2 in string format>" }, 
  etc.
]
这种丑陋而低效的代码可以正常工作

def get_list_of_stuff():
cursor=connection.cursor()
execute(“从my_表中选择json_内容”)
rows=cursor.fetchall()
返回[json.loads(row[“json_stuff”]),对于行中的行]

有没有人知道这样一种方法,不需要遍历所有行并将每一行解析成JSON?

< P> MySQL开发人员显然不认为驱动程序在JSON数据类型和Python结构化类型之间自动转换是合适的。几年前提交了一份bug报告。它被关闭为“不是一个bug”,评论如下:

因为JSON不是内置类型(甚至不是Python中的类型)。这种转换不应该在驱动程序中进行,更适合于具有高抽象级别的框架

由于您没有使用框架,只是使用低级数据库API,因此需要自己进行解析


我个人不同意他们的推理,我认为你的期望是合理的。但事实就是这样。

您是否尝试过将JSON内容作为字符串获取,然后通过
json
module?@GreenCoveGuy阅读它,这就是最后的代码片段所做的。
this
more
json\u stuff
列中json数据的键。我添加了一个数据内联示例。它只使用了一行额外的代码,在我的书中并不“难看”。而且就写这本书的时间而言,它相当有效。请详细说明你的要求。报告中的讨论很有趣,抓住了我正在努力做的事情的精神。对于悲伤的长号音乐,恐怕我必须接受这个答案。总是很抱歉带来坏消息。
[
  { "json_stuff": "<json_stuff row 1 in string format>" },
  { "json_stuff": "<json_stuff row 2 in string format>" }, 
  etc.
]
[
  { 'this': 'is my json data' },
  { 'more': 'of my data in the correct format' }, 
  etc.
]