Python 输出是类似元组[{a:b,d:c,…},{a:f,b:q,…},{a:v,b:k,…},…]

Python 输出是类似元组[{a:b,d:c,…},{a:f,b:q,…},{a:v,b:k,…},…],python,mysql,python-3.x,pythonanywhere,Python,Mysql,Python 3.x,Pythonanywhere,使用mySQL,我运行以下命令:(获取数据并在表中循环) 用户就是表。控制台正在输出一个元组 db = MySQLdb.connect("username.mysql.pythonanywhere-services.com", "username", "password", "username$database") cursor = db.cursor() cursor.execute('SELECT uid, firstname, lastname, username, city, s

使用mySQL,我运行以下命令:(获取数据并在表中循环)

用户就是表。控制台正在输出一个元组

db = MySQLdb.connect("username.mysql.pythonanywhere-services.com", "username", "password", "username$database")
cursor = db.cursor()    
cursor.execute('SELECT uid, firstname, lastname, username, city, state, streetaddress, email, special_needs, phonenumber, zipcode FROM users')
results = cursor.fetchall()
print(results)
我要把这个拿回来:

[{'special_needs': 'N/A', 'phonenumber': '5555555555', 'city': 'Oakland', 'zipcode': '44444', 'streetaddress': '32323 Apple St.', 'state': 'CA', 'email': 'bernie@taylor.com', 'uid': 1, 'firstname': 'Bernie', 'lastname': 'Sanders', 'username': 'bernieswift'}, {'special_needs': 'N/A', 'phonenumber': '6666666666', 'city': 'Greenappple', 'zipcode': '77777', 'streetaddress': '24936 Calaroga Ave.', 'state': 'CA', 'email': 'green@grass.com', 'uid': 2, 'firstname': 'john', 'lastname': 'lost', 'username': 'tony'}]
我之前所做的:(这在本地有效)

print_str=“”
对于结果中的结果:
print_str+=%s
%s
%s
%s
%s
%s
%s
%s
%s
%s
%s
“%(结果['uid']、结果['firstname']、结果['lastname']、结果['username']、结果['city']、结果['state']、结果['streetaddress']、结果['email']、结果['special\u needs']、结果['phonenumber']、结果[] 打印\u str+=“”

如何获取uid、firstname等的特定值?(假设我想遍历整个数据库)如何从数据库中获取单个值?我真的被元组搞糊涂了

我想你可以这样做。 例如,您需要uid等于1的firstname

uname=[counter['firsname'],如果计数器['uid']==1,则结果中的计数器为[counter['firsname']
返回
['Bernie']

这适用于更复杂的语句,例如:

data=[(计数器['firstname'],计数器['lastname']),如果计数器['奥克兰','greenapple']]中的计数器['city'],则计数器['lastname'])将显示结果。

返回
[('Bernie','Sanders'),('john','lost')]


虽然这不是一个完美的解决方案,但它可以完成任务。

您需要初始化数据库

您将有如下内容:

`MySQLdb.connect(user='joe', passwd='password', db='dbname',
                      cursorclass=MySQLdb.cursors.DictCursor)`

您的意思是如何从返回的值中访问它们,还是仅从数据库中访问它们?如何从数据库中访问值我以前从未见过它们像这样返回-您是否将它们存储在单独的列和行中?(仅供参考,不是我投你反对票)是的——如果我对你的理解正确的话。我不在乎反对票。。我是新来的。它们重要吗?你有这样的东西:
MySQLdb.connect(user='joe',passwd='password',db='dbname',cursorclass=MySQLdb.cursors.DictCursor)
`MySQLdb.connect(user='joe', passwd='password', db='dbname',
                      cursorclass=MySQLdb.cursors.DictCursor)`