【问题标题】:String Formatting (ValueError: Unknown format code 'd' for object of type 'str')字符串格式(ValueError:“str”类型的对象的未知格式代码“d”)
【发布时间】:2021-11-09 18:09:43
【问题描述】:

所以我尝试使用 nasa api 打印一些格式化文本,打印空间中靠近地球的物体的名称和距离。

我的问题是我无法在距离前面找到空白,(以便它们在名称旁边是正确的)我尝试了 {:25d} 但那不起作用并给了我

错误: print(f"Name: {name:25} Entfernung km: {distance:25d}") ValueError:“str”类型的对象的未知格式代码“d”

python 文档示例 (https://docs.python.org/3/tutorial/inputoutput.html) 运行正常。

import requests

key = "DEMO_KEY"
start_date = "2021-03-20"
end_date = "2021-03-27"
r = requests.get(f"https://api.nasa.gov/neo/rest/v1/feed?start_date={start_date}&end_date={end_date}&api_key={key}")
json = r.json()

def search_name_distance(date):
    print(date, ":\n")
    for x in range(len(json['near_earth_objects'][date])):
        name = json['near_earth_objects'][date][x]['name']
        distance = json['near_earth_objects'][date][x]['close_approach_data'][0]['miss_distance']['kilometers']
        print(f"Name: {name:25} Entfernung km: {distance:25d}")
    print("\n\n")

search_name_distance(start_date)

'''
working:
table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}
for name, phone in table.items():
    print(f'{name:10} ==> {phone:10d}')
'''

【问题讨论】:

    标签: python string formatting valueerror


    【解决方案1】:

    d 用于整数,但在您的情况下,distancestr。所以你可以转换

    distance = int(json['near_earth_objects'][date][x]['close_approach_data'][0]['miss_distance']['kilometers'])
    

    【讨论】:

    • 非常感谢,已解决。忽略了json包含的字符串不是整数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    相关资源
    最近更新 更多