mysql fetch now_Python MySQL connector-使用fetchon时找到未读结果

我正在将JSON数据插入MySQL数据库

我正在解析JSON,然后使用python连接器将其插入MySQL数据库

通过试用,我可以看出这个错误与这段代码有关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.

查询是否太复杂,需要拆分?还是有其他问题?

如果查询确实太复杂,有人能建议如何最好地分割它吗?

根据@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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值