【问题标题】:Python Invalid syntax in conn.commit() SQLconn.commit() SQL 中的 Python 语法无效
【发布时间】:2019-10-18 19:56:39
【问题描述】:

我无法理解为什么 conn.commit 在我尝试插入数据时会吐出无效的语法。

import urllib.request as urllib
import socket
import pyodbc


#ip fra host
host = "www.skat.dk" 
dest = socket.gethostbyname(host)
hdata = 'host',host,'IP:',dest


#Responseheader fra en domæne
request = urllib.Request('http://skat.dk')

request.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36')

response = urllib.urlopen(request)

rdata = response.info()



#SQL Connection til localhost microsoft sql server
conn = pyodbc.connect('Driver={SQL Server Native Client 11.0};'
                  'Server=DESKTOP-THV2IDL;'
                  'Database=host;'
                  'Trusted_Connection=yes;')

cursor = conn.cursor()
cursor.execute('SELECT * FROM host.dbo.hosts')


#Insert values
cursor.execute("""
INSERT INTO host.dbo.hosts
(Id, host, ip, HSTS, HPKP, XContentTypeOptions, XFrameOptions, ContentSecurityPolicy)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
""",
(49, host, dest, rdata['Strict-Transport-Security'], rdata['Public-Key-Pins'], 
rdata['X-Content-Type-Options'], rdata['X-Frame-Options'], rdata['Content-Security-Policy'], 
rdata['X-Frame-Options'])



conn.commit():

SyntaxError: 无效语法 PS C:\Users\Farzad\Desktop\Python> & C:/Users/Farzad/AppData/Local/Programs/Python/Python37- 32/python.exe c:/Users/Farzad/Desktop/Python/Webscraping/Responseheaderinfo.py 文件“c:/Users/Farzad/Desktop/Python/Webscraping/Responseheaderinfo.py”, 第 47 行 conn.commit(): ^

【问题讨论】:

  • 你写了:
  • 我还注意到,当查询中只考虑 8 个值时,您提供了 9 个值。 rdata['X-Frame-Options'] 似乎在您的执行调用结束时重复。
  • 我删除了 : 并添加了另一个值,删除了查询中的重复项,但仍然出现相同的语法错误。

标签: python sql web-scraping


【解决方案1】:

conn.commit() 后面附加了一个冒号。

conn.commit(): 无效。

【讨论】:

  • 在相同的行引用下是否产生相同的语法错误?你发的那个肯定是冒号的原因。
【解决方案2】:

您缺少一个括号,请参阅下面的最后一行

cursor.execute("""
INSERT INTO host.dbo.hosts
(Id, host, ip, HSTS, HPKP, XContentTypeOptions, XFrameOptions, ContentSecurityPolicy)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
""",
(49, host, dest, rdata['Strict-Transport-Security'], rdata['Public-Key-Pins'], 
rdata['X-Content-Type-Options'], rdata['X-Frame-Options'], rdata['Content-Security-Policy'], 
rdata['X-Frame-Options'])) #<----extra bracket missing here 

【讨论】:

    猜你喜欢
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    相关资源
    最近更新 更多