【问题标题】:Multiple print output, printing only one of them多个打印输出,只打印其中一个
【发布时间】:2015-09-14 15:07:44
【问题描述】:

python 新手。所以我正在运行这个脚本,在哪里听到一个 mp3 文件(监听 api),脚本返回该文件的元数据(艺术家,曲目名称),具有不同的置信度百分比。

代码sn-p:

first = True
for score, rid, title, artist in results:
    if first:
        first = False
    else:
        print()
    cursor.execute("update sc_download set Artist_name=%s , Song_name=%s , MB_ID=%s , Match_Percent=%s where SC_TID=%s" , (artist.encode('utf-8'), title.encode('utf-8'), rid, score*100, track_id))
    conn.commit()
    print('%s\n%s' % (artist, title))
    print('%s' % rid)
    print('%i%%' % (int(score*100)))

问题是,我有大约 3-4 个输出,最高百分比约为 90%,最低为 50%。我也是,在mysql中插入这个数据,默认情况下,最后一个输出(百分比较低)正在写入。

输出:

拉娜·德雷 Summertime Sadness (Cedric Gervais 混音) f85d4c4d-20e0-4cdc-a443-45fd5eaeffdc 91%

拉娜·德雷 Summertime Sadness (Cedric Gervais 混音) 14aa03d7-3923-45df-b0e3-8ff72b94fc10 69%

有什么方法可以只捕获第一个输出并将其插入数据库?

对任何不明确的、无意的地方表示歉意。

【问题讨论】:

  • 如果您不想将最后一个输出插入到数据库中,只需...不要将最后一个输出插入到数据库中。
  • 您能否提供更多您已经拥有的代码?另外,您是想从另一个程序的打印语句中捕获数据,还是只是想将artisttitle 存储在数据库中?
  • 您是否可以控制插入数据库的脚本/程序?
  • 是的,我只是将艺术家和标题存储在数据库中。使用更多代码编辑帖子。
  • 是的,我是用pymysql插入的,所以我可以控制它。

标签: python mysql pymysql


【解决方案1】:

(1) 为简单起见,如果在循环顶部删除它。将 print 语句移动到循环之前的行。

(2) 如果您只想要一个结果,则不要遍历所有结果。抓住第一个并独自处理那个。具体来说,将你的 for 命令换成

score, rid, title, artist = results[0]

然后继续你的其余代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-30
    • 2015-09-29
    • 2016-05-29
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    相关资源
    最近更新 更多