Сначала прошу прощения, если это плохо отформатировано, я никогда не задавал здесь вопросов раньше.
Я запускаю python 2.7.15 в virtualenv на win10-64. Я пытаюсь загрузить несколько тестовых строк в базу данных MySQL, но получаю глупейшую ошибку и не знаю, как ее обойти. MySQL Python / Connector должен быть установлен правильно. То же самое с GCP SDK.
import mysql.connector
from mysql.connector import errorcode
# Config info will be moved into config file(s) after testing
# Google Proxy Connection (Proxy must be running in shell)
# C:\Users\USER\Google Drive\Summer Education\GCP
# $ cloud_sql_proxy.exe -instances = "pdf2txt2sql-test"=tcp:3307
config1 = {
'user': 'USER',
'password': 'PASSWORD',
'host': 'IP',
'port': '3307',
'database': 'pdftxttest',
'raise_on_warnings': True,
}
# Direct Connection to Google Cloud SQL
config2 = {
'user': 'USER',
'password': 'PASSWORD',
'host': 'IP',
'database': 'pdftxttest',
'raise_on_warnings': True,
}
try:
cnx = mysql.connector.connect(**config1)
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with your user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
print("Connection not made")
cursor = cnx.cursor()
# Test information
id = str(1)
testtitle = str("Look a fake title")
teststring = str('thislistis representingaveryshort pdfwithfuckedup spaces')
add_pdf = ("INSERT INTO pdftexttest (id, title, text) VALUES (%s, %s, %s)", (id, testtitle, teststring)
try:
cursor.execute(add_pdf)
except mysql.connector.Error as err:
if err.errno == errorcode.ER_BAD_TABLE_ERROR:
print("no pdf for you")
else:
print(err)
print("here")
cnx.commit()
cursor.close()
cnx.close()
После запуска этого кода я получаю
(env) C:\Users\USER\Google Drive\Summer Education\ProjPdf2Txt>python TXT2SQL.py
File "TXT2SQL.py", line 47
try:
^
SyntaxError: invalid syntax
У меня есть опыт работы с java, но я все еще начинающий программист.
Если я удалю предложение Try ... Except и перейду прямо к cursor.execute (), консоль сообщит мне
(env) C:\Users\USER\Google Drive\Summer Education\ProjPdf2Txt>python TXT2SQL.py
File "TXT2SQL.py", line 46
cursor.execute(add_pdf)
^
SyntaxError: invalid syntax
Поскольку вы новичок, я бы рекомендовал использовать пользовательский интерфейс подсветки синтаксиса. Использование Sublime Text или Atom в качестве этого поможет вам узнать и найти такие мелкие нюансы.
@Kyle Пожалуйста, не обновляйте код, чтобы исправить его в соответствии с полученными вами ответами, вопрос больше не имеет смысла, если вы это сделаете. Я отменил вашу правку.
@Thierry, это имеет смысл, спасибо. Я буду помнить об этом в будущих публикациях






В предыдущей строке
add_pdf = ("ВСТАВИТЬ В pdftexttest (id, title, text) VALUES (% s,% s,% s)", (id, testtitle, teststring)
Вы открываете (но не закрываете.
Вам не хватало парентеза.
add_pdf = ("ВСТАВИТЬ В pdftexttest (id, title, text) VALUES (% s,% s,% s)", (id, testtitle, teststring) )
проверьте свой отступ