python - 数据未插入数据库 - python
问题描述
我想使用 python 向数据库添加一些数据,但我有一个问题。一个表的数据已成功插入,但问题出在另一个表上。
有两个表vehicles
,vehicle_price
如下:
我的代码如下:
def insert_vehicles_to_db(vehicle):
conn = db_connection()
cur = conn.cursor()
if vehicle_not_exists(vehicle, conn, cur):
try:
insert_vehicle(vehicle, conn, cur)
insert_vehicle_price(vehicle, conn, cur)
except Exception as e:
pass
conn.close()
功能insert_vehicle
如下:
def insert_vehicle(vehicle, conn, cur):
try:
query = "INSERT INTO vehicles (reference, data, price, reference_url, timestamp) VALUES (%s, %s, %s, %s, %s);"
cur.execute(query, (vehicle['reference'], "", vehicle['price'], vehicle['reference_url'], datetime.datetime.now()))
conn.commit()
except Exception as e:
pass
这工作正常,车辆总是被插入。但问题出在下一个问题上,insert_vehicle_price
如下所示:
def insert_vehicle_price(vehicle, conn, cur):
try:
vehicle_data = get_vehicles(vehicle['reference'], vehicle['reference_url'], conn, cur)[0] # get the last vehicle
vehicle_id = vehicle_data[0]
vehicle_price = Decimal(vehicle['price'] + ".00")
query = "INSERT INTO vehicle_price (price, timestamp, vehicle_id) VALUES (%s, %s, %s);"
cur.execute(query, (vehicle_price, datetime.datetime.now(), vehicle_id))
conn.commit()
except Exception as e:
pass
因此由于某种原因没有插入价格。
知道为什么吗?
更新
该函数get_vehicles
如下所示:
def get_vehicles(reference, reference_url, conn, cur):
try:
sql_get_vehicles = "SELECT * FROM vehicles WHERE reference = %s and reference_url = %s"
cur.execute(sql_get_vehicles, (reference, reference_url))
return cur.fetchall()
except Exception as e:
# TODO Handle error
pdb.set_trace()
pass
解决方案
推荐阅读
- c# - 更改 XML 标记前缀 SOAP
- php - PHP 如何使用我的选择来更改值?
- r - 在 R 中使用嵌套函数的高效代码
- python - 避免数据框中的 KeyError
- ruby-on-rails - 没有路由匹配 {:action=>"show", :controller=>"admin/users"},缺少必需的键:[:id]
- javascript - 上下文菜单选项在哪里定义?
- javascript - 从 javascript 嵌套数组中获取值
- java - 如何在命令行中运行打包在另一个jar文件中的jar文件?
- apache - 通过 www.example.com 在 localhost:8000 上为 wordpress 重定向 Apache 虚拟主机
- apache-poi - Liferay:使用 Apache POI 读取 Excel 数据