嵌套字典不会打印整数

时间:2015-10-22 10:25:10

标签: python list dictionary

我有一个python(nested)字典,我想从中创建一个表(然后是csv file)。问题是如果值是int,它不会附加到列表'table'。它甚至没有通过elif/if语句的其余部分。

我正在尝试创建一个列表(表),如果是字典,它将包含所有值和键。

table = []
def indict(d):
        for (k, v) in d.items():

            def indict(d):
for (k, v) in d.items():

    if isinstance(v, dict):
        table.append([str(k) + ":"])
        indict(v)
        print "another dictionary "
    elif type(v) == list:
        table.append([str(k),"list"])
        print "appended as list"
    elif type(v) != unicode and type(v) != list:
        print v
        v = str(v)
        print v + " converted"
        #print d[i]
    else:
        table.append([str(k), v])
        print "simply value"

这是字典的一个例子:

{u'city': {u'uname': u'london', u'id': 1, u'name': u'London'}, u'notice': u'', u'neighborhood': {u'uname': u'papaya-tree', u'id': 5, u'name': u'Papaya Tree'},....

它不会附加'id'也不会附加1。

1 个答案:

答案 0 :(得分:0)

最自然的方法是使用递归...这里是一个例子:

d = { u'city': {u'uname': u'london', u'id': 1, u'name': u'London'} }
output = list()
def testdict(d,output):
    for k,v in d.iteritems():
        if type(v) == dict:
            testdict(v,output)
        else:
            output.append((str(k),v))

testdict(d,output)

print output # prints:[('uname', u'london'), ('id', 1), ('name', u'London')]