python mysql解包cur.fetchall()的结果

luaexgnf  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(412)

我在python中有一个查询,当我使用 row = cur.fetchone() 或者 rows = cur.fetchall() ,无法正确解包值。

import pymysql.cursors
cur.execute(QUERY)
rows = cur.fetchall()
for row in rows:
    col1_data, col2_data, col3_data = row

我希望 col#_data 包含相应的值,但它只有标签。如果我这样做了 print(row) 我得到:
{'post\u author':'username','newposts':十进制('52'),'reposts':十进制('50')}
如何解压mysql值?

9wbgstp7

9wbgstp71#

访问 row 就像一本字典:

for row in rows:
    post_author = row['post_author']
    newposts = row['newposts']
    reposts = row['newposts']
vdzxcuhz

vdzxcuhz2#

找到了解决办法。问题是我将行视为列表,但pymysql返回字典。当我这么做的时候 a,b,c=row ,将a、b、c的值设置为的键(列标题) row .
诀窍是访问字典的值并将其转换为列表。

a, b, c = list(row.values())

相关问题