首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL语句仅输出列表的最后一行

SQL语句仅输出列表的最后一行
EN

Stack Overflow用户
提问于 2019-12-24 02:10:50
回答 1查看 43关注 0票数 0

下面是将数据从列表Applestore插入到数据库ios.db中创建的Applestore表的代码

代码语言:javascript
复制
 import sqlite3
    connection = sqlite3.connect("ios.db")
    cursor = connection.cursor()
    for p in appstore[1:]: 
        format_str = """INSERT INTO Applestore (id, track_name, size_bytes, currency, price, rating_count_tot, rating_count_ver, user_rating, user_rating_ver, ver,  cont_rating, prime_genre, sup_devices_num, ipadSc_url, lang_num, vpp_lic) 
        VALUES ("{id}", "{track_name}", "{size_bytes}", "{currency}", "{price}", "{rating_count_tot}", "{rating_count_ver}", "{user_rating}", "{user_rating_ver}", "{ver}",  "{cont_rating}", "{prime_genre}", "{sup_devices_num}", "{ipadSc_url}", "{lang_num}", "{vpp_lic}");""" 
        sql_command = format_str.format(id = p[0],track_name = p[1],size_bytes = p[2],currency = p[3],price = p[4],rating_count_tot = p[5],rating_count_ver = p[6], user_rating = p[7], user_rating_ver = p[8], ver = p[9], cont_rating = p[10], prime_genre = p[11], sup_devices_num = p[12], ipadSc_url = p[13], lang_num = p[14], vpp_lic = p[15]) 

    cursor.execute(sql_command)


    connection.commit()

    connection.close()

这只输出最后一行

代码语言:javascript
复制
import sqlite3
connection = sqlite3.connect("ios.db")
cursor = connection.cursor()
cursor.execute("""SELECT * FROM Applestore""")
print("fetchall:")
result = cursor.fetchall() 
for r in result:
    print(r)

添加上述建议后,代码如下所示:

代码语言:javascript
复制
import sqlite3
connection = sqlite3.connect("ios.db")
cursor = connection.cursor()
for p in appstore:
    format_str = """INSERT INTO Applestore (id, track_name, size_bytes, currency, price, rating_count_tot, rating_count_ver, user_rating, user_rating_ver, ver,  cont_rating, prime_genre, sup_devices_num, ipadSc_url, lang_num, vpp_lic) 
    VALUES (id, track_name, size_bytes, currency, price, rating_count_tot, rating_count_ver, user_rating, user_rating_ver, ver,  cont_rating, prime_genre, sup_devices_num, ipadSc_url, lang_num, vpp_lic);""" 
    #sql_command = format_str.format(id = p[0],track_name = p[1],size_bytes = p[2],currency = p[3],price = p[4],rating_count_tot = p[5],rating_count_ver = p[6], user_rating = p[7], user_rating_ver = p[8], ver = p[9], cont_rating = p[10], prime_genre = p[11], sup_devices_num = p[12], ipadSc_url = p[13], lang_num = p[14], vpp_lic = p[15]) 
    cursor.execute(format_str, (*p[1:16]))


connection.commit()
connetion.close()

错误:函数最多接受2个参数(给定17个)

EN

回答 1

Stack Overflow用户

发布于 2019-12-24 02:14:16

每次在for循环中循环时,都会覆盖SQL命令。

您可以将cursor.execute(sql_command)放在sql_command = ...正下方的for循环中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59459603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档