You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中Amazon Simple Product API的price_and_currency返回Decimal如何修正?

解决Amazon Simple Product API返回Decimal类型价格的问题

嘿,我之前也遇到过这个小坑!其实这是因为模块内部做了优化——用Decimal类型存储价格(毕竟处理货币用Decimal比字符串/浮点数靠谱太多,能避免浮点精度丢失的麻烦),但官方文档没及时同步更新导致的差异。

要得到文档里显示的('149.95', 'USD')格式,你可以试试这几种方法:

  • 直接转换Decimal为字符串:
    返回的元组第一个元素是Decimal对象,直接用str()把它转成字符串就行:

    price_tuple = product.price_and_currency
    formatted_price = (str(price_tuple[0]), price_tuple[1])
    # 输出就是 ('149.95', 'USD')
    
  • 封装成工具函数(方便复用):
    如果你的代码里经常需要处理这个转换,写个小函数会更省心:

    def format_price_currency(price_tuple):
        return (str(price_tuple[0]), price_tuple[1])
    
    # 使用示例
    formatted_price = format_price_currency(product.price_and_currency)
    
  • 额外小提醒:
    其实如果你的代码需要对价格做计算,保留Decimal类型反而更好——它能精准处理货币的加减乘除,不会出现类似0.1 + 0.2 = 0.30000000000000004的诡异问题。只有当你需要和文档格式完全一致,或者要把价格展示给用户/存入字符串格式的存储时,才需要转成字符串。

内容的提问来源于stack exchange,提问作者Rimo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:08:17