2017-08-21 7 views
-1

私はPython jsonオブジェクトに基づいて文字列をフォーマットする方法は?

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

のようなものを持っているJSONファイルを持っていると私は私が試したことのない出力

"Blah 1 Blah Blah 2 3" 

にそのJSON

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

に基づいて、この文字列をフォーマットしたいですグーグルでそれを見つけることができなかったもの(Python how to format string based on json)、ほとんどの結果はJSONをきれいに印刷したものでした。

+1

おそらく、これは実際には辞書ではなく、JSON文字列であると必要なものは何でも行うことができます。 –

+0

@Daniel Rosemanは、jsonの文字列として始まり、次にdictになります。 –

答えて

4

str.formatを使用すると簡単にこれを実行できます。あなたがjson.loadsを使用し、メモリにあなたのJSON文字列をロードする方法がわからない場合

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

::だから

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

、一緒に入れ、あなたが辞書としてメモリ内にあなたのJSONデータをロードしたと仮定すると、 、完全なスクリプトは次のようになります。

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

あなたは

以下のようなコードで変数としてJSON配列を持っている場合
data = { 
    "a": "1", 
    "b": "2", 
    "c": "3" 
} 

データ変数に定義されているキーと値のペアのキー名に基づいて、個々のアイテムを呼び出すことができます。

それは次に

変数new_string、次いで「2 3何とか1つの何とか何とか」となる

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

ほど単純であることができる私は(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

+0

この問題は、私が入力する文字列が異なる順序であり、異なるキーワードを持つということです。基本的に私の入力文字列は変更されます。 –

+0

まったく同じJSONデータを使ってたくさんの異なる文字列を作成しようとしていますか?あるいは、さまざまな文字列とたくさんの異なるデータがありますか? – stephen

+0

@ AL_1あなたの文字列とデータセット全体に一貫性がある場合を除いて、残念なことにどのように扱われているのかについてそれぞれ固有のケースを書く必要があるでしょう。 – stephen

関連する問題