python - 如何使用 Python 将列表列表插入数据库
问题描述
我有一个 python 列表,我想插入到 MySQL 数据库中。该列表如下所示:
[[column_name_1,value_1],[column_name_2, value_2],.......]
我想将其插入到列名为的数据库表中column_name_1, column_name_2.....
使数据库表如下所示:
column_name_1 | column_name_2 | column_name_3 | column_name_4
value_1 | value_2 | value_3 | value_4
value_1 | value_2 | value_3 | value_4
value_1 | value_2 | value_3 | value_4
如何在 python 中实现这一点?
提前致谢!
解决方案
假设您保证每列都有一个值,您可以执行以下操作,首先根据您拥有的列集将这些分组到行中。如果列值可能丢失,您可以再次将其切换到第一列外观的关键行(假设始终保证存在一个)。这种数据格式在确定行边界时是不寻常的并且容易出现错误,除非您对其格式有一些保证。
data = [
["Name", "John"],
["Address", "XYZ"],
["Gender", "Male"],
["Name", "Rose"],
["Address", "ABC"],
["Gender", "Female"]
]
columns = ["Name", "Address", "Gender"]
row = []
rows = []
for key, val in data:
row.append(val)
if len(row) == len(columns):
rows.append(row)
row = []
# The specifics of everything below will depend on your database and connection library.
sql = (
"INSERT INTO my_table (%s) VALUES (%s)" %
(', '.join(columns), ", ".join(["?" for i in columns]))
)
conn = ...
cursor = ...
cursor.executemany(sql, rows)
推荐阅读
- java - JavaFX AudioClip 不播放某些 mp3 文件
- python - Discord.py 反应计数不说话
- .htaccess - 如何在 htaccess 中重写 url 以隐藏子文件夹?
- react-native - React Native ,Flatlist :如何删除“未读”笔记,一旦你点击
- r - sym 参数类型无效
- node.js - 如何从 JSON Nodejs 获取数据?
- django - Nest.js 序列化器,如 Django
- python - Pandas Series:ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
- vue.js - 在子函数上使用父道具
- spring-boot - 如何处理 Spring Boot 2.4.5 中的错误页面?