嵌套python字典的字符串格式

时间:2015-07-02 16:41:05

标签: python dictionary nested

我有一本打印好的词典

print(
    """{ASSET_EDGE_CONFIG[EndAdvertiserAdAccounts][hive_data_features][rev_28d]}""".format(**locals())
)

但我想将“EndAdvertiserAdAccounts”键参数化为类似下面的内容

EDGE = 'EndAdvertiserAdAccounts'
print(
    """{ASSET_EDGE_CONFIG[{EDGE}][hive_data_features][rev_28d]}""".format(**locals())
)

上面的代码给出了以下错误:

KeyError: '{EDGE}'

我猜有一种使用格式化函数格式化dict的特殊方法。任何帮助都在这里赞赏

1 个答案:

答案 0 :(得分:2)

使用字符串格式功能无法满足您的要求。正如Ming指出你以非常奇怪的方式使用字符串格式。字符串格式的规范是here。您要问的基本上是element_index规范,它说方括号内的东西必须是整数或字符串常量。你的例子会尝试`ASSERT_EDGE_CONFIG [“{EDGE}”] ......

如果您正在尝试这样做,那么以下内容会更有意义:

print ASSET_EDGE_CONFIG[EDGE]["hive_data_features"]["rev_28d"]

假设您尝试做更有趣的事情的可能性更大,那么值得提供一个更复杂的示例来向我们展示您为什么要使用字符串格式。

如果你真的想要我猜你可以做(​​需要两次格式调用):

EDGE = 'EndAdvertiserAdAccounts'
print(
    """{{ASSET_EDGE_CONFIG[{EDGE}][hive_data_features][rev_28d]}}""".format(**locals()).format(**locals())
)