如何使用python在一批文本中编写字典键?

时间:2016-10-11 00:40:38

标签: python dictionary

如果有任何帮助,我将不胜感激。我有一个字典,看起来像这样:

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

我希望字典中的密钥放在我的文本中(我附加到文件中)所以我写了:

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附加到文件中。如何编写代码,以便v取值' D14 2015'例如。

2 个答案:

答案 0 :(得分: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))

如果您要格式化多个变量,则可以将它们编入索引:

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]))

请注意,在您的示例中不需要调用.keys(),因为默认情况下python会迭代字典的键。

答案 1 :(得分: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了解详情。