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

为何Python字典仅显示最后一个键值对?技术咨询

问题原因与解决办法

问题根源

Python字典的键具有唯一性,你在my_constraint中重复定义了constraint_class、table_name、constraint_parameters这三个键。当字典里出现重复键时,后面的键值对会直接覆盖前面的,所以最终打印时只会保留最后一组键值。

修正方案

你需要把多个约束存储为字典的列表,这样每个约束都是独立的字典,不会被覆盖。修改后的代码如下:

my_constraints = [
    {
        'constraint_class': 'FixedCombinations',
        'table_name': 'DIM_SITE', # for multi table synthesizers
        'constraint_parameters': {
            'column_names': ['SITE_NAME2', 'COUNTRY', 'CITY', 'LANDCODE', 'REGION' ]
        }
    },
    {
        'constraint_class': 'FixedCombinations',
        'table_name': 'REPORT_ASSET_PROBLEMS_ULT_AUTOMATE', # for multi table synthesizers
        'constraint_parameters': {
            'column_names': ['ASSET_TYPE', 'ASSET_NAME', 'PROBLEM', 'SOLUTION']
        }
    },
    {
        'constraint_class': 'FixedCombinations',
        'table_name': 'REPORT_ASSET_STATUS_REPORT', # for multi table synthesizers
        'constraint_parameters': {
            'column_names': ['ASSET_TYPE', 'ASSET_NAME', 'PROBLEM', 'SOLUTION']
        }
    },
    {
        'constraint_class': 'FixedCombinations',
        'table_name': 'SITE', # for multi table synthesizers
        'constraint_parameters': {
            'column_names': ['LANDCODE', 'COUNTRY', 'CITY', 'REGION']
        }
    },
    {
        'constraint_class': 'FixedCombinations',
        'table_name': '', # for multi table synthesizers
        'constraint_parameters': {
            'column_names': ['LEVEL', 'COMPONENT', 'COMPONENT_NAME', 'KPI', 'CWR', 'CR']
        }
    }
]

# 打印所有约束
for item in my_constraints:
    print(item)

效果说明

修改后,每个约束都是列表中的独立元素,不会被覆盖。通过遍历列表打印,你可以清晰看到每一组约束的内容,方便验证更新是否正确。

内容的提问来源于stack exchange,提问作者Geert Van Der Weide

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 04:56:17