簡體   English   中英

Python如何根據dict或json對象格式化字符串?

[英]Python how to format a string based on dict or json object?

我有一個 JSON 文件,我將其轉換為具有類似內容的 Dict

{
  "a": "1",
  "b": "2",
  "c": "3"
}

我想根據那個 JSON 格式化這個字符串

"Blah {a} Blah Blah {b} {c}"

輸出

"Blah 1 Blah Blah 2 3"

我沒有嘗試過任何東西,也沒有通過谷歌搜索找到任何東西( Python how to format string based on json ),大多數結果只是為了漂亮地打印 JSON。

您可以使用str.format輕松完成此操作。 假設您已將 JSON 數據作為字典加載到內存中:

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

如果您不確定如何將 JSON 字符串加載到內存中,請使用json.loads

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

因此,放在一起,完整的腳本將是:

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

如果您的代碼中有 JSON 數組作為變量,如下所示

data = {
  "a": "1",
  "b": "2",
  "c": "3"
}

然后,您可以根據 data 變量中定義的鍵/值對中的鍵名稱調用這些單獨的項目。

然后它可以很簡單

new_string = "Blah " + str(data["a"]) + " blah blah " + str(data["b"]) + " " + str(data["c"])

變量 new_string 將是“Blah 1 blah blah 2 3”

我使用了 str() 方法,以防萬一 JSON 數組中的內容已經不是字符串。

如果您想對其進行更多編程,並且將使用不同的數據集多次生成字符串,您可以執行與此類似的操作,但使用對您和您的項目有意義的變量名稱並制作成一個函數。

data = {"a": "1", "b": "2", "c": "3"}
var_0 = str(data["a"])
var_1 = str(data["b"])
var_2 = str(data["c"])
new_string = "Blah " + var_0 + " blah blah " + var_1 + var_2

然后從那里你可以用 new_string 做任何你需要的事情

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM