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

Python实现日期键字典到指定JSON结构的格式转换

错误原因

你的代码存在3个问题,导致输出不符合预期:

  • 内层循环遍历对象错误:外层循环已经拿到当前日期对应的元组列表val,但内层循环错误遍历了整个字典的所有值filtered_data.values(),拿到的是所有日期的元组列表集合,不是当前日期下的单条货币记录
  • 取值逻辑错误:内层循环拿到的元素是一整个元组列表(例如[('EUR', 34.02), ('USD', 30.18)]),因此v[0]、v[1]取到的是列表里的前两个元组,才会出现currency和value字段是列表/元组的问题
  • 字段名不匹配:目标要求的日期字段名是data,你的代码里写的是timestamp
正确实现代码
import json

json_data = {"filtered_data": []}

# 遍历原始字典,date是日期字符串,currency_tuples是当前日期对应的(货币代码, 数值)元组列表
for date, currency_tuples in filtered_data.items():
    # 遍历当前日期下的每一条货币记录,直接解包元组取值
    for currency_code, amount in currency_tuples:
        json_data["filtered_data"].append({
            "data": date,
            "currency": currency_code,
            "value": amount
        })

# 生成格式化的JSON字符串,ensure_ascii=False避免特殊字符被强制转义
json_output = json.dumps(json_data, indent=2, ensure_ascii=False)
效果说明

运行后输出结构会完全匹配要求:同一个日期下的不同货币会被拆分为独立记录存入filtered_data数组,每个记录的currency为字符串类型的货币代码、value为对应数值,不会出现类型错位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:00:54