Python如何根据dict或json对象格式化字符串?

AL_*_*L_1 1 python formatting json dictionary dynamic

我有一个 JSON 文件,我将其转换为具有类似内容的 Dict

{
  "a": "1",
  "b": "2",
  "c": "3"
}
Run Code Online (Sandbox Code Playgroud)

我想根据那个 JSON 格式化这个字符串

"Blah {a} Blah Blah {b} {c}"
Run Code Online (Sandbox Code Playgroud)

输出

"Blah 1 Blah Blah 2 3"
Run Code Online (Sandbox Code Playgroud)

我没有尝试过任何东西,也没有通过谷歌搜索 ( Python how to format string based on json)找到任何东西,大多数结果只是为了漂亮地打印 JSON。

Chr*_*ean 7

您可以使用它str.format来轻松完成此操作。假设您已将 JSON 数据作为字典加载到内存中:

>>> data = {
  "a": "1",
  "b": "2",
  "c": "3"
}
>>> "Blah {a} Blah Blah {b} {c}".format(**data)
'Blah 1 Blah Blah 2 3'
Run Code Online (Sandbox Code Playgroud)

如果您不确定如何将 JSON 字符串加载到内存中,请使用json.loads

>>> from json import loads
>>> data = loads('{ "a": "1", "b": "2", "c": "3" }')
>>> data
{'a': '1', 'b': '2', 'c': '3'}
Run Code Online (Sandbox Code Playgroud)

因此,放在一起,完整的脚本将是:

from json import loads
data = loads('{ "a": "1", "b": "2", "c": "3" }')
print("Blah {a} Blah Blah {b} {c}".format(**data))
Run Code Online (Sandbox Code Playgroud)