0

我正在尝试让 python 读取字典,然后以某种方式对其进行修改(添加/删除内容),然后将其保存到另一个文件中。

我正在使用的字典是

kundenDict = {
'Kunde1': {
    'Datum11':{'ArtikelNo111':['Bezeichnung111', 'Farbe111', 'Kollektion111'],
               'ArtikelNo112':['Bezeichnung112', 'Farbe112', 'Kollektion112']},
    'Datum12':{'ArtikelNo121':['Bezeichnung121', 'Farbe121', 'Kollektion121'],
               'ArtikelNo122':['Bezeichnung122', 'Farbe122', 'Kollektion122']},
    },

'Kunde2': {
    'Datum21':{'ArtikelNo211':['Bezeichnung211', 'Farbe211', 'Kollektion211'],
               'ArtikelNo212':['Bezeichnung212', 'Farbe212', 'Kollektion212']},
    'Datum22':{'ArtikelNo221':['Bezeichnung221', 'Farbe221', 'Kollektion221'],
               'ArtikelNo222':['Bezeichnung222', 'Farbe222', 'Kollektion222']},
    },
'Kunde3': {
    'Datum31':{'ArtikelNo311':['Bezeichnung311', 'Farbe311', 'Kollektion311'],
               'ArtikelNo312':['Bezeichnung312', 'Farbe312', 'Kollektion312']},
    'Datum32':{'ArtikelNo321':['Bezeichnung321', 'Farbe321', 'Kollektion321'],
               'ArtikelNo322':['Bezeichnung322', 'Farbe322', 'Kollektion322']},
    },
}

我开始使用:

def pretty(d, indent=0):
   for key, value in d.iteritems():
      print '\t' * indent + str(key) + ": {"
      if isinstance(value, dict):
         pretty(value, indent+1)
      else:
         print '\t' * (indent+1) + str(value)

在我意识到这不会给我相同的输出之前。

任何帮助将不胜感激。

4

1 回答 1

0

我能够使用以下代码使其工作:

from pprint import pprint

masterDict = {Some nested dictionary}
f=open('masterDict.py','w')
f.write( 'masterDict = {\n')

def pretty(masterDict, indent=1):
    for key, value in masterDict.iteritems():
        f.write('   ' * indent + "'" + str(key) + "'" + ': {\n')
        if isinstance(value, dict):
            pretty(value, indent+1)
        else:
            f.write('    ' * (indent+1) + str(value) + '}\n')
    f.write('    ' * (indent+2) + '}\n')

pretty(masterDict)
f.close()
于 2014-06-13T11:24:46.627 回答