写入leg_data表时,需要提供一个request_no,该值对应于master表中request_no列下的一个值。在
更新:
不幸的是,“date_time”不是唯一的,因为每秒最多可以从API接收10条记录。
下面的语法确实有效。Orig_lat、Orig_lng、Dest_lat和Dest_lng的组合将是独一无二的,尽管其笨重。如何更改下面的“WHERE”语句以引用上面的所有4个参数?在for result in results:
if result["status"] == "OK":
for leg in result['routes'][0]['legs']:
params = {
"date_time": leg['_date_time'],
"distance": leg['distance']['value'],
"duration": leg['duration']['value'],
"duration_in_traffic": leg['duration_in_traffic']['value'],
"Orig_lat": leg['start_location']['lat'],
"Orig_lng": leg['start_location']['lng'],
"Orig_address": leg['start_address'],
"Dest_lat": leg['end_location']['lat'],
"Dest_lng": leg['end_location']['lng'],
"Dest_address": leg['end_address']
}
cursor.execute(add_overall_data, params)
cursor.execute(
'SELECT request_no FROM master WHERE date_time = {}'.format(
leg['_date_time']
)
)
request_no = cursor.fetchOne()[0]
for steps in result['routes'][0]['legs'][0]['steps']:
params = {
"request_no": request_no,
"leg_distance": steps['distance']['value'],
"leg_duration": steps['duration']['value'],
"leg_Orig_lat": steps['start_location']['lat'],
"leg_Orig_lng": steps['start_location']['lng'],
"leg_Dest_lat": steps['end_location']['lat'],
"leg_Dest_lng": steps['end_location']['lng'],
"leg_html_inst": steps['html_instructions'],
"leg_polyline": steps['polyline']['points'],
"leg_travel_mode": steps['travel_mode']
}
cursor.execute(add_leg_data, params)
更新2:如果date_time不足以唯一标识一条记录,则可以根据需要向查询添加任意数量的列:
^{pr2}$