2017-05-11 37 views
0

我有一個格式變量的JSON,類似於字符串格式,我希望能夠使用由實際值替換的變量加載它。使用字典格式化JSON

例如,如果JSON是:

[ 
    { 
     "role": "President", 
     "name": "{first_name}", 
     "age": "{first_age}" 
    }, 
    { 
     "role": "Vice President", 
     "name": "{second_name}", 
     "age": "{second_age}" 
    } 
] 

而且我想和格式化詞典:

{"first_name": "Bob", "first_age": "50", "second_name": "Bill", "second_age": "35"} 

我想獲得:

[ 
    { 
     "role": "President", 
     "name": "Bob", 
     "age": "50" 
    }, 
    { 
     "role": "Vice President", 
     "name": "Bill", 
     "age": "35" 
    } 
] 

我嘗試將JSON轉換爲字符串,使用格式,然後將其重新轉換爲字典列表:

from ast import literal_eval 
literal_eval(str(raw_json).format(**json_params)) 

但字典的花括號混淆了格式函數,並給我一個KeyError異常。我想我可以用雙花括號來代替每一對沒有變量名的花括號,但是這肯定會出錯,也不會是Pythonic。

什麼是最優雅的方式來解決這個問題?

回答

1

你在找什麼是模板引擎。 模板是json字符串,數據必須注入到此模板中。 正確的工具來做到這一點蟒蛇是jinja2

+0

工程很好,幾行 - 非常感謝! – GabeL