one_day_ago = datetime.datetime.now() - datetime.timedelta(days=3) result = mongo_db.user_collection.aggregate([{"$lookup":{"from": "payCondition","localField": "i_ui_identifier","foreignField": "userId","as": "nvc_user_name"}},{"$match": {"nvc_user_name.addtime": {"$gt": one_day_ago}}}]) print(result) # 连接mysql数据库 mysql_conn = mysql.connector.connect(host='172.16.2.246', port='33060', user='root', password='8ach4b6f9c', database='testdata_analyse',) mysql_cursor = mysql_conn.cursor() for row in result: var_title = row[0], var_type_name = row[1], var_company_name = row[2], var_source = row[3], var_succees_cause = row[4], is_succeed = row[5], dt_add_time = row[6], var_user_name = row[7] mysql_cursor.execute("INSERT INTO t_wuliu_information_pay_statistic VALUES (%s, %s, %s, %s, %s,%s,%s,%s)", (var_title,var_type_name,var_company_name,var_source,var_succees_cause,is_succeed,dt_add_time,var_user_name)) mysql_result = mysql_cursor.fetchall() print(mysql_result) mysql_conn.commit()这段python代码为什么result还有结果,但是就不插入到mysql的表中呢?怎么修改这个python代码
时间: 2024-03-27 15:38:46 浏览: 102
这段 Python 代码可能存在以下问题:
1. 可能是查询结果中没有匹配到任何记录,导致没有进行插入操作。你可以在插入数据之前,先打印出查询结果看一下。
2. 插入数据时使用的参数数量和参数类型与表格定义的不一致。你可以检查表格定义和插入语句参数数量及数据类型是否一致。
3. 插入数据时出现了一些异常,导致事务没有被提交。你可以在插入数据之后,手动提交事务。
改进的代码如下:
```python
one_day_ago = datetime.datetime.now() - datetime.timedelta(days=3)
# 连接 MongoDB 数据库
mongo_client = pymongo.MongoClient('mongodb://localhost:27017/')
mongo_db = mongo_client['testdb']
# 查询 MongoDB 中的数据
result = mongo_db.user_collection.aggregate([
{
"$lookup": {
"from": "payCondition",
"localField": "i_ui_identifier",
"foreignField": "userId",
"as": "nvc_user_name"
}
},
{
"$match": {
"nvc_user_name.addtime": {"$gt": one_day_ago}
}
}
])
print(list(result))
# 连接 MySQL 数据库
mysql_conn = mysql.connector.connect(
host='172.16.2.246',
port='33060',
user='root',
password='8ach4b6f9c',
database='testdata_analyse'
)
mysql_cursor = mysql_conn.cursor()
# 插入数据到 MySQL 数据库
for row in result:
var_title = row[0],
var_type_name = row[1],
var_company_name = row[2],
var_source = row[3],
var_succees_cause = row[4],
is_succeed = row[5],
dt_add_time = row[6],
var_user_name = row[7]
mysql_cursor.execute("""
INSERT INTO t_wuliu_information_pay_statistic
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
""", (
var_title, var_type_name, var_company_name, var_source,
var_succees_cause, is_succeed, dt_add_time, var_user_name
))
mysql_conn.commit()
```
阅读全文