Warm tip: This article is reproduced from serverfault.com, please click

python-为什么Select语句仅返回1列?

(python - Why Select statement returns only 1 column?)

发布于 2020-11-29 13:43:28

我尝试打印3列:

  1. 艺术家艺术家
  2. 歌曲之歌
  3. 歌曲浏览量

这是我的代码:

conn = sqlite3.connect('utube.db')

conn.row_factory = lambda cursor, row: row[0]

c = conn.cursor()

c.execute("""Select Artists.artist, Songs.Song ,Songs.views FROM Songs 
          INNER JOIN Artists
          ON Artists.Artist_Id = Songs.Artist_Id
          """)

allsong = c.fetchall()

a = allsong        
print(a)
         
conn.commit()
conn.close()

但是输出仅返回Artists.artist

['Blackpink', 'Blackpink', 'Lady gaga', 'Lady gaga', 'Lady gaga', 'The Beatles', 'The Beatles', 'Metallica', 'Frank Sinatra', 'Frank Ocean']

如何解决这个问题使其返回类似

[['Blackpink',?,?],['Blackpink',?,?],['Lady Gaga' ,?,?]........]
Questioner
Wallika
Viewed
0
Owen 2020-11-29 21:48:31

看起来这行将仅选择每一行的第一列:

 conn.row_factory = lambda cursor, row: row[0]

尝试将其取出来,看看是否能整行都可以。