使用Python将嵌套列表插入mysql数据库

使用Python将嵌套列表插入mysql数据库,python,mysql,mysql-python,Python,Mysql,Mysql Python,我想在mysql数据库中插入一个嵌套列表 通常,我们向mysql插入一个列表数据,如下所示: list_data = ['Kate', 'apple'] sql = 'INSERT INTO table VALUES ('name', 'likes')' cursor.execute(sql, list_data) 但如果 list_data = ['Kate', ['apple', 'orange', 'banana']] 或 我该怎么办?(我的意思是将pyhton列表或dict保存为my

我想在mysql数据库中插入一个嵌套列表

通常,我们向mysql插入一个列表数据,如下所示:

list_data = ['Kate', 'apple']
sql = 'INSERT INTO table VALUES ('name', 'likes')'
cursor.execute(sql, list_data)
但如果

list_data = ['Kate', ['apple', 'orange', 'banana']]


我该怎么办?(我的意思是将pyhton列表或dict保存为mysql中的字符串。)

您可以在Python中使用json.dumps函数,请尝试以下代码:

import json
list_data = ['Kate', json.dumps(['apple', 'orange', 'banana'])]
OR, list_data = ['Kate', json.dumps({'food': 'apple', 'sports': 'running'})]
sql = 'INSERT INTO table VALUES ('name', 'likes')'
cursor.execute(sql, list_data)
平坦化数据也是一个好主意,但这完全取决于数据库的设计和要求


希望这有帮助

也许你可以考虑将你的输入平铺成一个列表?(想想CSV格式)。例如,
list_data=['Kate'、{'food':'apple'、'sports':'running'}]
的最后一个示例可以转换为
input=['Kate'、'apple'、'running']
,其中列名为
Name
food
,和
sports
,对于这个示例,我只想使用两列'Name'和'likes',并且希望整个dict{'food':'apple','sports':'running'}都在'likes'列中;i、 例如,
list_data=['Kate',“{'food':'apple','sports':'running'}”]
(注意字典中的引号)是的,我现在就是这样做的,而且效果很好。事实上,我有很多这类数据要插入,所以我试图找到一种更直接的方法,而不是每次都将它们转换为字符串格式。是的,这很有效。在将列表或dict类型插入mysql之前,我们似乎必须将其转换为字符串类型,而不是直接插入。当您从DB提取数据时,您必须使用json.loads()将其转换为Python数据结构。如果对您的情况有帮助,请对其进行升级,以便其他人也能从中受益。谢谢
import json
list_data = ['Kate', json.dumps(['apple', 'orange', 'banana'])]
OR, list_data = ['Kate', json.dumps({'food': 'apple', 'sports': 'running'})]
sql = 'INSERT INTO table VALUES ('name', 'likes')'
cursor.execute(sql, list_data)