在python postgresql中返回列表中的单列提取

zqdjd7g9  于 2022-11-26  发布在  Python
关注(0)|答案(2)|浏览(123)

数据库:
| 标识符|贸易|记号|
| - -|- -|- -|
| 一个|abc公司|小行星5523|
| 2个|FDFD法|小行星5145|
| 三个|SDFD系统|小行星2899|
编码:

def db_fetchquery(sql):
    conn    = psycopg2.connect(database="trade", user='postgres', password='jps', host='127.0.0.1', port= '5432')
    cursor = conn.cursor()
    conn.autocommit = True
    cursor.execute(sql)
    row = cursor.rowcount
    if row >= 1:
        data = cursor.fetchall()
        conn.close()
        return data
    conn.close()
    return False

print(db_fetchquery("SELECT token FROM script"))

结果:
【(5523)(5145)(2899)】
但我需要的结果是:
[5523,5145,2899]
我也尝试了print(db_fetchquery("SELECT zerodha FROM script")[0]),但结果为:- [(5523,)]
另外,当我只提取一列时,为什么list里面有',' / list?

7vhp5slm

7vhp5slm1#

不确定您是否能够在不进行进一步处理的情况下做到这一点,但我会这样做:

data = [x[0] for x in data]

将元组列表转换为一维列表

uoifb46i

uoifb46i2#

要将[(5523,),(5145,),(2899,)]转换为[5523, 5145, 2899],可以使用lambda列表解析
使用lambda

res = [(5523,),(5145,),(2899,)]
res = list(map(lambda x: x[0], res)) 
print(res) 
#output: [5523, 5145, 2899]

使用列表解析

res = [(5523,),(5145,),(2899,)]
res = [i[0] for i in res]
print(res) 
#output: [5523, 5145, 2899]

相关问题