代码之家  ›  专栏  ›  技术社区  ›  MerfSauce

如何将字典的格式更改为value1;键1;在Python 3.6中?

  •  1
  • MerfSauce  · 技术社区  · 7 年前

    我正在尝试将字典的格式更改为

    value1;key1;
    value2;key2;
    value3;key3;
    valuen;keyn;
    

    并将其保存到文本文件中。

    我还希望能够加载文本文件并将其转换回字典。此外,值和键应该位于彼此下面的下一行,但我无法使其看起来像这样。

    我试图将键和值都转换为单独的列表,并将它们放在一起,但没有成功。我还尝试了在StackOverflow上找到的其他方法,但我什么都做不到,现在我完全卡住了。

    4 回复  |  直到 7 年前
        1
  •  3
  •   user3483203    7 年前

    尝试以下操作:

    dct = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
    with open('output.txt', 'w') as f:
        for k, v in dct.items():
            f.write('{};{};\n'.format(v, k))
    

    输出:

    value1;key1;
    value2;key2;
    value3;key3;
    
        2
  •  1
  •   uwain12345    7 年前

    假设您已经以f\u out的形式打开了输出文件:

    for key, value in my_dict.items():
        f_out.write('{};{};\n'.format(value, key))
    

    将为您提供所需的输出。读回也很容易:

    for line in f_in:
        my_list = line.split(';')
        my_dict[my_list[1]] = my_list[0]
    
        3
  •  0
  •   Nilesh Kevlani    7 年前

    给你

    # Writing
    D = {"K1" : "V1", "K2" : "V2", "K3" : "V3"}
    f = open("temp.txt", "w")
    for k in D:
       tempStr = k+";"+D[k]+";\n"
       f.write(tempStr)
    
    f.close()
    
    # Reading
    f = open("temp.txt", "r")
    t1 = f.read().split()
    D2 = dict()
    for i in t1:    
        k, v, _ = i.split(";")
        D2[k] = v
    
    f.close()
    print(D2["K2"])
    
        4
  •  0
  •   fleetingbytes    7 年前

    如果您需要一些内容来读取此类源文本文件,您可以使用以下内容:

    source = "source.txt"
    
    def readFile(source):
        d = dict()
        with open(source) as f:
            data = f.readlines()
            for line in data:
                l = line.split(";")
                key, value = l[0], l[1]
                d[key] = value
            return d
    
    dictionaryFromFile = readFile(source)