python3嵌套字典解包格式字符串

Posted

技术标签:

【中文标题】python3嵌套字典解包格式字符串【英文标题】:python3 nested dictionary unpack for format string 【发布时间】:2020-10-12 09:02:31 【问题描述】:

我正在尝试将字典(从 JSON 文件加载)传递给格式化字符串。虽然单个键值 unpack 可以正常工作,但我不确定如何使用格式字符串访问 嵌套键(子项)。

或者还有其他更好的方法将 JSON 传递为字符串格式吗?

config = 
    "TEST": "TEST",
    "TEST1": "TEST1",
    "TEST2": 
        "TEST21": "TEST21"
    


query_1 = """
    TEST TEST1
"""
query_2 = """
    TEST TEST1
    TEST2.TEST21
"""

print(query_1.format( **config ))  # WORKING
print(query_2.format( **config ))  # NOT WORKING

【问题讨论】:

【参考方案1】:

在您的 query_2 中将 TEST2.TEST21 更改为 TEST2[TEST21] 即可。

例如

query_2 = """
    TEST TEST1
    TEST2[TEST21]
"""
print(query_2.format(**config))

输出

TEST TEST1
TEST21

【讨论】:

【参考方案2】:

使用 f 字符串

config = 
    "TEST": "TEST",
    "TEST1": "TEST1",
    "TEST2": 
        "TEST21": "TEST21"
    


query_2 = f"""
    config['TEST'] config['TEST1']
    config['TEST2']['TEST21']
"""

print(query_2)

注意,如果查询是 sql 查询,可能有更好的方法来做你所做的,而不是使用字符串格式

【讨论】:

感谢您的好建议!

以上是关于python3嵌套字典解包格式字符串的主要内容,如果未能解决你的问题,请参考以下文章

Python字典(dict)与json数据格式的区别和联系

Python学习第四天之字典

将 JSON 行解包到 pandas 数据框

Python - 字典理解中的元组解包

Django模板语言解包字典

selenium10-python3部分代码复习