gpt4 book ai didi

python - 获取 mysql 数据作为 python 字典

转载 作者:行者123 更新时间:2023-11-29 04:39:59 24 4
gpt4 key购买 nike

我有下面的 mysql 表。我需要使用 python 提取前两行作为字典。我正在使用 python 2.7。

 C1    C2    C3    C4    C5    C6    C7 

25 33 76 87 56 76 47
67 94 90 56 77 32 84
53 66 24 93 33 88 99
73 34 52 85 67 82 77

我使用下面的代码

exp = MySQLdb.connect(host,port,user,passwd,db)
exp_cur = van.cursor(MySQLdb.cursors.DictCursor)
exp_cur.execute("SELECT * FROM table;")
data = exp_cur.fetchone()
data_keys = data.keys()
#print data_keys

预期的输出(data_keys)是

['C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7']

但是我明白了

['C1', 'C3', 'C2', 'C5', 'C4', 'C7', 'C6']

我的代码有什么错误?

最佳答案

dict keys have no easily predictable order .要按照它们在数据库中出现的顺序获取数据库表字段,请使用游标的description attribute。 :

fields = [item[0] for item in cursor.description]

例如,

import MySQLdb
import MySQLdb.cursors as cursors
import config

connection = MySQLdb.connect(
host=config.HOST, user=config.USER,
passwd=config.PASS, db=config.MYDB,
cursorclass=cursors.DictCursor)

with connection as cursor:
cursor.execute('DROP TABLE IF EXISTS test')
cursor.execute("""CREATE TABLE test (foo int, bar int, baz int)""")
cursor.execute("""INSERT INTO test (foo, bar, baz) VALUES (%s,%s,%s)""", (1,2,3))
cursor.execute('SELECT * FROM test')
data = cursor.fetchone()
fields = [item[0] for item in cursor.description]

data.keys() 可以按任何顺序返回字段:

    print(data.keys())
# ['baz', 'foo', 'bar']

但是 fields 始终是 ('foo', 'bar', 'baz'):

    print(fields)
# ('foo', 'bar', 'baz')

关于python - 获取 mysql 数据作为 python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31745613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com