将嵌套字典写入.txt文件

时间:2018-01-19 16:35:58

标签: python python-2.x

我有一本看起来像这样的字典

{'Berlin': {'Type1': 96},
 'Frankfurt': {'Type1': 48},
 'London': {'Type1': 288, 'Type2': 64, 'Type3': 426},
 'Paris': {'Type1': 48, 'Type2': 96}}

然后我想以格式

写入.txt文件
London
  Type1: 288
  Type2: 64
  Type3: 426

Paris
  Type1: 48
  Type2: 96

Frankfurt
  Type1: 48

Berlin
  Type1: 98

我试过用

f = open("C:\\Users\\me\\Desktop\\capacity_report.txt", "w+")
f.write(json.dumps(mydict, indent=4, sort_keys=True))

但这打印如下:

{
    "London": {
        "Type1": 288,
        "Type2": 64,
        "Type3": 426
     },
     "Paris": {
         "Type1": 48,
         "Type2": 96
     },
     "Frankfurt": {
         "Type1": 48
      },
      "Berlin": {
         "Type1": 98
      }
}

我想删除标点符号和括号。有没有办法做到这一点,我看不到?

2 个答案:

答案 0 :(得分:2)

您需要手动写出字典。您不是在这里尝试生成JSON,使用该模块没有意义。

迭代字典键和值并将其写为行。 print()功能在这里很有用:

from __future__ import print_function

with open("C:\\Users\\me\\Desktop\\capacity_report.txt", "w") as f:
    for key, nested in sorted(mydict.items()):
        print(key, file=f)
        for subkey, value in sorted(nested.items()):
            print('   {}: {}'.format(subkey, value), file=f)
        print(file=f)

print()函数为我们处理换行符。

答案 1 :(得分:0)

如果你使用python 3.6来保存字典上插入键的顺序,你可以使用这样的东西。

-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**

它的作品改变了f.write的打印效果。我希望这会有所帮助。