From c875a8dc2b142b1411db4aff48c546abb79bb025 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 12 Jun 2026 15:12:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20test=5Fpricing=20=E4=BC=A0=E5=85=A5?= =?UTF-8?q?=E5=B7=B2=E8=A7=A3=E6=9E=90=E7=9A=84=20dict=20=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=20yaml.safe=5Fload=20=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ppt_db2app 将 pricing_data 从 YAML 字符串解析为 Python dict, 但 test_pricing 直接传给 get_pricing_from_ymalstr(期望 YAML 字符串), 导致 yaml.safe_load(dict) 报 TypeError。 修复:检测 ppt.pricing_data 类型,如果是 dict 则 yaml.dump 转回字符串。 --- pricing/pricing.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pricing/pricing.py b/pricing/pricing.py index df5da92..06cbe16 100644 --- a/pricing/pricing.py +++ b/pricing/pricing.py @@ -974,7 +974,9 @@ async def get_pricing_program_timeing(pptid): async def test_pricing(pptid, data): ppt = await get_pricing_program_timeing(pptid) - prices = PricingProgram.get_pricing_from_ymalstr(data, ppt.pricing_data) + # ppt.pricing_data 已被 ppt_db2app 解析为 dict,需要转回 YAML 字符串 + yamlstr = yaml.dump(ppt.pricing_data, allow_unicode=True) if isinstance(ppt.pricing_data, dict) else ppt.pricing_data + prices = PricingProgram.get_pricing_from_ymalstr(data, yamlstr) if prices is None: return None amount = 0