需要获得Iterable,我有一个Dicts列表

时间:2018-04-03 02:50:53

标签: python json list dictionary flask

我的头撞在墙上的时间超过了我承认的时间。我有一个dicts列表,我需要传递给一个可迭代的东西。我假设我需要获取这些dicts的内容并将它们放入格式正确的新dict中。我无法弄清楚如何去做。这是我的列表"联系人"看起来像:

[{'City': 'Boston',
'Unique_Id': '123456-789',
'FullName': 'Smith, Joe',
'other_id': '0987654',
'area': 'Area 1'},
{'City': 'San Fransisco',
'Unique_Id': '654321-987',
'FullName': 'Brown, John',
'other_id': '7654321',
'area': 'Area 2'},
{'City': 'New York',
'Unique_Id': '7890123-456',
'FullName': 'Incomplete, Guy',
'other_id': None,
'area': None}]

我试图将其传递给:https://github.com/plumdog/flask_table

相关部分是:

class Item(object):
def __init__(self, name, description):
    self.name = name
    self.description = description
...
...
items = [dict(name='Name1', description='Description1'),
     dict(name='Name2', description='Description2'),
     dict(name='Name3', description='Description3')]

所以我需要获取我的列表"联系人"在某种形状下由该函数迭代,可能是一个新的字典。我觉得我需要列表理解才能将其转换为字典,但我不能很好地掌握这个概念,以便了解如何做到这一点。我需要将它传递给函数,以便它可以将json list / dict值转换为HTML表,以便在一个小SPA中输出。列表中有5个dicts的硬限制因此它不应该变得很长。我想我想最终得到类似的东西:

items = [contacts(name='City', description='Their City'),
 contacts(name='Unique_Id', description='GUID'),
 contacts(name='FullName', description='Name')
...and so on
]

我不知道怎么回事。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您不需要更改字典中的任何内容。您只需更新两个类中的属性:

# Declare your table
class ItemTable(Table):
    City = Col('City')
    Unique_Id = Col('Unique_Id')
    FullName = Col('FullName')
    other_id = Col("other_id")
    area = Col("area")

# Get some objects
class Item(object):
    def __init__(self, City, Unique_Id,FullName,other_id,area):
        self.City = City
        self.Unique_Id = Unique_Id
        self.FullName = FullName
        self.other_id=other_id
        self.area = area

然后只根据您的参考网址:

     myTable =   [{'City': 'Boston',
    'Unique_Id': '123456-789',
    'FullName': 'Smith, Joe',
    'other_id': '0987654',
    'area': 'Area 1'},
    {'City': 'San Fransisco',
    'Unique_Id': '654321-987',
    'FullName': 'Brown, John',
    'other_id': '7654321',
    'area': 'Area 2'},
    {'City': 'New York',
    'Unique_Id': '7890123-456',
    'FullName': 'Incomplete, Guy',
    'other_id': None,
    'area': None}]
    table = ItemTable(myTable)
    print(table.__html__())

输出如下:

<table>
<thead><tr><th>City</th><th>Unique_Id</th><th>FullName</th><th>other_id</th><th>area</th></tr></thead>
<tbody>
<tr><td>Boston</td><td>123456-789</td><td>Smith, Joe</td><td>0987654</td><td>Area 1</td></tr>
<tr><td>San Fransisco</td><td>654321-987</td><td>Brown, John</td><td>7654321</td><td>Area 2</td></tr>
<tr><td>New York</td><td>7890123-456</td><td>Incomplete, Guy</td><td></td><td></td></tr>
</tbody>
</table>