Отправка пространственных данных с помощью Python и Mysql Connector

#python #mysql #spatial #mysql-connector #spatial-data

#python #mysql #пространственный #mysql-connector #пространственные данные

Вопрос:

Используя Mysql Connector и Python, я пытаюсь передать простейшую форму пространственных данных (точечный тип данных) в мою базу данных MySQL. При использовании mysql connector функция ‘execute’ в Option1 работает, тогда как та же команда в Option2 не работает, выдавая ошибку «У вас ошибка в синтаксисе SQL».

Не могли бы вы поделиться какими-либо мыслями, почему опция 2 «mycursor.execute (sql, val)» выдает ошибку?

 import mysql.connector
from Functions import *
mydb = mySqlConnection()
mycursor = mydb.cursor()
Latitude=5.245 # Values are random
Longitude=1.66 # Values are random
Location = "ST_GeomFromText('POINT(" str(Latitude) " " str(Longitude) ")')"

#OPTION 1 - WORKS
sql = "INSERT INTO test (Location) VALUES (" Location ")"
mycursor.execute(sql)

#OPTION 2 - DOES NOT WORK
sql = "INSERT INTO test (Location) VALUES (%s)"
val = (Location) 
mycursor.execute(sql, val)

mydb.commit()
  

Любые идеи будут действительно оценены. Заранее большое спасибо.

С наилучшими пожеланиями, Алекс

Комментарии:

1. Какое %s значение имеет синтаксис вставки варианта 2?

2. %s Представляют значение, проходящее через параметр val. Пожалуйста, обратитесь к примеру по ссылке ниже dev.mysql.com/doc/connector-python/en /…

3. На самом деле, мне было интересно, какое значение было переведено %s . Каким было полное сообщение об ошибке?