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

Python格式化输出报错ValueError: Unknown format code 'd' for 'str'咨询

问题原因

报错是因为NASA API返回的kilometers距离字段是字符串类型,而格式符d仅支持整数类型的变量。你参考的官方示例中phone变量本身就是整数,所以可以正常使用d格式符。

解决方案

可根据需求选择以下任意一种修复方式:

  • 方案1:转整数后使用整数格式符
    如果不需要保留距离的小数部分,修改变量赋值代码,将字符串转成整数:
    distance = int(float(json['near_earth_objects'][date][x]['close_approach_data'][0]['miss_distance']['kilometers']))
    
    原有格式化语句print(f"Name: {name:25} Entfernung km: {distance:25d}")无需修改即可正常运行。
  • 方案2:转浮点数后使用浮点格式符
    如果需要保留小数精度,先将字符串转成浮点类型:
    distance = float(json['near_earth_objects'][date][x]['close_approach_data'][0]['miss_distance']['kilometers'])
    
    格式化语句调整为对应浮点格式,示例保留2位小数:
    print(f"Name: {name:25} Entfernung km: {distance:25.2f}")
    
  • 方案3:不修改数据类型,直接使用通用右对齐格式
    无需修改变量赋值,仅调整格式化语句,用>指定右对齐规则,适配字符串、数字等多种类型:
    print(f"Name: {name:25} Entfernung km: {distance:>25}")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:57:03