Commit d4e9d9c0 authored by 邱阿朋's avatar 邱阿朋

fix(price_gui): 修复价格列数据推送逻辑错误

- 在读取CSV数据后提前将Price列转换为数值类型,错误值转为NaN
- 过滤掉Price列中无效的NaN值,避免发送无效价格数据
- 调整消息推送循环为遍历过滤后的有效数据集合
- 修正推送数据中price字段直接使用转换后的数值,避免类型判断错误
- 优化了RabbitMQ客户端导入位置,确保逻辑统一和清晰
parent 968f8b9d
...@@ -11,7 +11,7 @@ from ttkbootstrap.constants import * ...@@ -11,7 +11,7 @@ from ttkbootstrap.constants import *
from tkinter import filedialog, scrolledtext from tkinter import filedialog, scrolledtext
from threading import Thread from threading import Thread
from app.helper import rabbitmq
from app.helper.domain import switch_domain from app.helper.domain import switch_domain
class AmazonPriceScraper: class AmazonPriceScraper:
...@@ -167,22 +167,24 @@ class AmazonPriceScraper: ...@@ -167,22 +167,24 @@ class AmazonPriceScraper:
# 读取Excel文件 # 读取Excel文件
data = pd.read_csv(output_file) data = pd.read_csv(output_file)
# 提前转换 Price 列,错误值转为 NaN
data['Price'] = pd.to_numeric(data['Price'], errors='coerce')
# 过滤掉无效价格(NaN)
valid_data = data.dropna(subset=['Price'])
self.log("开始推送消息....") self.log("开始推送消息....")
from app.helper import rabbitmq
client = rabbitmq.RabbitMQClient() client = rabbitmq.RabbitMQClient()
client.connection() client.connection()
client.connect(queue='price_robot', routing_key='price_robot', exchange='product') client.connect(queue='price_robot', routing_key='price_robot', exchange='product')
country = self.country_var.get() country = self.country_var.get()
for _, item_row in data.iterrows(): for _, item_row in valid_data.iterrows():
price = item_row.get('Price', 0)
if not isinstance(price, (int, float)):
continue
push_data = { push_data = {
'currency': country, 'currency': country,
'asin': item_row.get('ASIN', ''), 'asin': item_row.get('ASIN', ''),
'price': item_row.get('Price', 0), 'price': item_row['Price'],
} }
client.send_message(push_data) client.send_message(push_data)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment