2016-10-11 7 views
0

私は何か助けに感謝します。pythonを使用してテキストのバッチに辞書キーを書き込む方法は?

TEST_versions = { 'D14 2015': 'X1'、 'D12 2014': 'X2'}

私は辞書からキーが私の中に置くことにしたい私はこのようになります辞書を持っています私は書かれている(私は、ファイルに追加しています)テキスト:文字vはファイルに追加されている、むしろ

for v in TEST_versions.keys(): 
    #print(v) 
    add_code = open('make_all_ascii_files.txt','a') 
    add_code.write(""" 
SELECT IF (Version_selector = v).""") 

vは、キーの値を取っていません。どのようにすればvが値 'D14 2015'をとるようにコードを書くことができますか?

答えて

0

あなたは、変数と文字列をformatする必要があります。

for v in TEST_versions.keys(): 
    #print(v) 
    add_code = open('make_all_ascii_files.txt','a') 
    add_code.write(""" 
SELECT IF (Version_selector = {}).""".format(v)) 

あなたは複数の変数を持っている場合は、あなたがインデックス化でき、フォーマットしている:.keys()に呼び出すことを

for v in TEST_versions: 
    #print(v) 
    add_code = open('make_all_ascii_files.txt','a') 
    add_code.write(""" 
SELECT IF (Version_selector = {0}; value={1}).""".format(v, TEST_versions[v])) 

注意をPythonはデフォルトで辞書のキーを繰り返し処理するので、あなたの例では不要です。

0

vは、文字列自体の中に置き換えられません。 あなたは

for k in TEST_versions.keys(): 
    add_code = open('make_all_ascii_files.txt','a') 
    add_code.write(
     "SELECT IF (Version_selector = %(value)s)." 
     % { 'value': TEST_versions[k] } 
    ) 

または

for k in TEST_versions.keys(): 
    add_code = open('make_all_ascii_files.txt','a') 
    add_code.write("""SELECT IF (Version_selector = %s).""" % TEST_versions[k]) 

または

for k, v in TEST_versions.items(): 
    add_code = open('make_all_ascii_files.txt','a') 
    add_code.write("SELECT IF (Version_selector = %s)." % v) 

または文字列フォーマットのためのいくつかの他のオプション(名前のプレースホルダを使用して)、例えば、以下のような何かを行うことができます。 Pythonにはたくさんのオプションがあります

詳細はhttps://docs.python.org/2/library/string.html#format-string-syntaxを参照してください。

関連する問題