【问题标题】:python3 nested dictionary unpack for format stringpython3嵌套字典解包格式字符串
【发布时间】: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

【问题讨论】:

    标签: python-3.x format unpack


    【解决方案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 查询,可能有更好的方法来做你所做的,而不是使用字符串格式

      【讨论】:

      • 感谢您的好建议!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 2020-05-03
      • 1970-01-01
      • 2019-09-17
      • 2021-07-24
      • 2016-01-07
      • 2018-11-22
      相关资源
      最近更新 更多