Ben MySQL veritabanıPython MySQL konektörü - fetchone
Ben piton konektörü deneme yoluyla
kullanarak db bir MySQL takarak sonra JSON ayrıştırma ve am içine JSON veri ekleme am kullanırken bulunan okunmamış sonuç, Ben hata Ben üst düzey ayrıntıları takılı ve şimdi onun ebeveyni ile bu alt düzey bilgileri ilişkilendirmek için veritabanını arıyorum kod
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)
bu parça ile ilişkilidir görebilirsiniz. Bu benzersiz değeri bulmanın tek yolu, time_stamp ile kaynak ve hedef koordinatları üzerinden arama yapmaktır. Mantığın sağlam olduğunu ve bu bölümün hemen ardından leg_no'yu basarak, ilk incelemede görünen değerlerin doğru olması için
'u görebiliyorum. Ancak, kodun geri kalanına eklendiğinde, daha fazla veriye neden olan bölümlere neden oluyor. sorun sorgu çok karmaşık mı MySQL Unread Result with Python
benzemekte ve bölme ihtiyacı ya da başka bir sorun olduğunu
raise errors.InternalError("Unread result found.")
mysql.connector.errors.InternalError: Unread result found.
- bu hata ile başarısız olmasına imleci kullanarak yerleştirilir?
Sorgu gerçekten çok karmaşıksa, bunu nasıl en iyi şekilde bölüştürebilir? @ Gord yardımıyla gereğince
DÜZENLEME Ive hala çizikler
EDIT 2 baş
raise errors.InternalError("Unread result found.")
mysql.connector.errors.InternalError: Unread result found.
[Finished in 3.3s with exit code 1]
olsun, herhangi bir okunmamış sonuçları
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))
dökümü çalıştı Ama - ne zaman ie.msg yazdı, aldım - No result set to fetch from
Sonuç kümesinin üzerinden dönüyor ve veritabanını yeniden sorgulamak için sonucu kullanıyor musunuz? Bunun için aynı imleci kullanıyor musunuz? İlk önce tamponlu imleci kullanmak muhtemelen iyidir. Gord'un cevabına eklemek için fazla bir şeyim yok. – geertjanvdk