Соединитель Python MySQL – при использовании fetchone обнаружен непрочитанный результатPython

Программы на Python
Ответить
Anonymous
 Соединитель Python MySQL – при использовании fetchone обнаружен непрочитанный результат

Сообщение Anonymous »

Я вставляю данные JSON в базу данных MySQL

Я анализирую JSON, а затем вставляю его в базу данных MySQL с помощью соединителя Python

Проведя пробную версию, я вижу, что ошибка связана с этим фрагментом кода

for steps in result['routes'][0]['legs'][0]['steps']:
query = ('SELECT leg_no FROM leg_data WHERE travel_mode = %s AND Orig_lat = %s AND Orig_lng = %s AND Dest_lat = %s AND Dest_lng = %s AND time_stamp = %s')
if steps['travel_mode'] == "pub_tran":
travel_mode = steps['travel_mode']
Orig_lat = steps['var_1']['dep']['lat']
Orig_lng = steps['var_1']['dep']['lng']
Dest_lat = steps['var_1']['arr']['lat']
Dest_lng = steps['var_1']['arr']['lng']
time_stamp = leg['_sent_time_stamp']
if steps['travel_mode'] =="a_pied":
query = ('SELECT leg_no FROM leg_data WHERE travel_mode = %s AND Orig_lat = %s AND Orig_lng = %s AND Dest_lat = %s AND Dest_lng = %s AND time_stamp = %s')
travel_mode = steps['travel_mode']
Orig_lat = steps['var_2']['lat']
Orig_lng = steps['var_2']['lng']
Dest_lat = steps['var_2']['lat']
Dest_lng = steps['var_2']['lng']
time_stamp = leg['_sent_time_stamp']
cursor.execute(query,(travel_mode, Orig_lat, Orig_lng, Dest_lat, Dest_lng, time_stamp))
leg_no = cursor.fetchone()[0]
print(leg_no)


Я вставил детали более высокого уровня и теперь ищу в базе данных, чтобы связать эту информацию более низкого уровня с ее родительским элементом. Единственный способ найти это уникальное значение — выполнить поиск по координатам начала и назначения с помощью отметки времени. Я считаю, что логика верна, и, распечатав leg_no сразу после этого раздела, я могу увидеть значения, которые при первой проверке кажутся правильными.

Однако при добавлении к остальным кода, это приводит к сбою последующих разделов, в которые с помощью курсора вставляется больше данных -

raise errors.InternalError("Unread result found.")
mysql.connector.errors.InternalError: Unread result found.


Проблема похожа на непрочитанный результат MySQL с Python

Запрос слишком сложен и требует разделения или есть еще одна проблема?

Если запрос действительно слишком сложный, может ли кто-нибудь посоветовать, как лучше его разделить?

РЕДАКТИРОВАТЬ Согласно помощи @Gord, я пытался сбросить все непрочитанные результаты

cursor.execute(query,(leg_travel_mode, leg_Orig_lat, leg_Orig_lng, leg_Dest_lat, leg_Dest_lng))
leg_no = cursor.fetchone()[0]
try:
cursor.fetchall()
except mysql.connector.errors.InterfaceError as ie:
if ie.msg == 'No result set to fetch from.':
pass
else:
raise
cursor.execute(query,(leg_travel_mode, leg_Orig_lat, leg_Orig_lng, leg_Dest_lat, leg_Dest_lng, time_stamp))


Но я все равно получаю

raise errors.InternalError("Unread result found.")
mysql.connector.errors.InternalError: Unread result found.
[Finished in 3.3s with exit code 1]


чешет голову

РЕДАКТИРОВАТЬ 2 – когда я печатаю ie.msg, Я понимаю -

No result set to fetch from


Подробнее здесь: https://stackoverflow.com/questions/297 ... g-fetchone
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»