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

如何将Python嵌套字典中的字符串值转换为float类型?

问题描述

现有如下嵌套字典data:

data={"Volkswagen":{
          "Caddy Kombi":{
             "2022":"285000000.00",
             "2021":"212500000.00"
          },
          "Caddy Cargo":{
             "2022":"193100000.00",
             "2021":"190100000.00",
             "2019":"1289456545.00"
          }
       },
     "Tesla":{
          "Model 3":{
             "2022":"707160000.00",
             "2021":"630000000.00",
             "2020":"630000000.00"
          },
          "Model S":{
             "2021":"630000000.00",
             "2020":"630000000.00"
          },
          "Model X":{
             "2021":"1102500000.00",
          },
          "Model Y":{
             "2021":"735000000.00",
             "2020":"735000000.00"
          }
       }}

需要将字典中所有字符串格式的价格值转换为float类型(例如把"2021":"285000000.00"转为"2021":285000000.00),且转换后保持原字典结构不变。

用户尝试了以下代码但未得到预期结果:

for i, y in data.items():
         for k, x in y.items():
            for z,q in (y[k].items()):
               print(float(q))
               dictionary = {
                  i: {
                     k: x
                  }
               }
               print(dictionary)
正确实现方法

方法1:直接修改原字典

遍历字典的每一层嵌套,直接将最内层的字符串价格转为float类型:

for brand, models in data.items():
    for model, years in models.items():
        for year, price_str in years.items():
            years[year] = float(price_str)

执行后原字典data的结构完全保留,所有字符串格式的价格都会被替换为对应的float值。

方法2:创建新字典(不修改原数据)

如果需要保留原字典的原始数据,可以生成一个结构完全一致的新字典:

new_data = {}
for brand, models in data.items():
    new_data[brand] = {}
    for model, years in models.items():
        new_data[brand][model] = {year: float(price_str) for year, price_str in years.items()}

运行后new_data就是转换完成的目标字典,原data不受任何改动。

原代码无效的原因

你写的代码只是在循环中打印转换后的数值,并且每次循环都会重新创建一个仅包含当前品牌和车型的小型字典,既没有修改原字典,也没有逐步构建出完整的目标字典,所以最终无法得到结构完整的转换结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:15:41