【问题标题】:':' from inserting url into db causing error':' 从将 url 插入 db 导致错误
【发布时间】:2019-07-20 23:20:46
【问题描述】:

我正在尝试插入一些网址。该字符串已成功传输到查询,但是 url 中的冒号导致它失败。

discord_link_list = (re.findall(r'(https?://discord.gg[^(.+?)\']+)', link_list))

for link in discord_link_list:
    query = (
        f"INSERT INTO crawler_invitelink (inviteLink)\n"
        f"VALUES (  %s )" %(link)
    )
    dict_cur.execute(query)
    print(query)

psycopg2.errors.SyntaxError:“:”处或附近的语法错误 第 2 行:值(https://discord.gg/FAFVJxB

这是收到的错误消息

【问题讨论】:

  • 可能是因为您必须将值括在引号内(例如,"INSERT INTO crawler_invitelink (inviteLink) VALUES ( '%s' )"
  • 现在我收到错误“列不存在”
  • 打印查询以查看它并直接在数据库中使用它 - 使用一些数据库查看器/编辑器。数据库可能会显示有关问题的更多信息。
  • 也许您应该使用首选方法execute(query, link) 而不是手动创建查询。
  • 我想出了一个办法,谢谢你们指出我正确的方向

标签: python postgresql psycopg2


【解决方案1】:

感谢您的帮助,对于现在正在查看此内容的任何人,这解决了我的问题。基本上将链接归因于字典,然后仅将值调用到查询中


for link in discord_link_list:
    invite_link = link
    data.append({ "invite_link" : invite_link })

print(data)

for link in data:
    query = (
        f"INSERT INTO crawler_invitelink (discord_link)\n"
        f"VALUES ( '%s' )" %(  link['invite_link']  )
    )
    dict_cur.execute(query)
    print(query)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 2017-03-20
    • 2022-11-16
    • 2021-02-16
    • 1970-01-01
    相关资源
    最近更新 更多