我有一本看起来像这样的字典
{'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
}
}
我想删除标点符号和括号。有没有办法做到这一点,我看不到?
答案 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的打印效果。我希望这会有所帮助。