Как выбрать без имен столбцов в Python с Pymysql? - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу выбрать строку в MySQL, я делаю так:

import pymysql
conn = pymysql.connect(
                        host='10.0.0.11', 
                        port=3306,
                        user='root', 
                        password='159753arazr', 
                        db='bili_1810', 
                        charset='utf8', 
                        cursorclass=pymysql.cursors.DictCursor)
cursor = conn.cursor()
table_name = ['24569', '25510']
for x in table_name:
    sql = "SELECT `播放`, `关注`, `弹幕`, `硬币` FROM `"+x+"` LIMIT %s, 1"
    cursor.execute(sql, (9))
    conn.commit()
    result = cursor.fetchall()
    print(result)
conn.close()

Результат:

[{'播放': '25824', '关注': '3071', '弹幕': '141', '硬币': '107'}]
[{'播放': '0', '关注': '1244460', '弹幕': '0', '硬币': '0'}]

Но я хочу, чтобы это было так:

[{'25824', '3071', '141', '107'}]
[{'0', '1244460', '0', '0'}]

Как я могу это сделать без имен столбцов?

1 Ответ

0 голосов
/ 27 сентября 2018

Как показал ваш результат, у вас есть список, который охватывает элементы, которые вы запрашивали в структуре dict. Если вы хотите получить желаемый результат таким образом, вы можете попробовать это:

result = cursor.fetchall()
result_values = [iter_item for iter_item in map(lambda item: [item[key]
                                          for key in item.keys()], result)]

В этомКстати, вы можете получить как [[]] вместо [{}], но это гарантирует порядок стоимости.Если вы просто хотите установить, вы можете использовать это:

result = cursor.fetchall()
result_values = [iter_item for iter_item in map(lambda item: set([item[key]
                                          for key in item.keys()]), result)]
...