我的头撞在墙上的时间超过了我承认的时间。我有一个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
]
我不知道怎么回事。任何帮助将不胜感激。
答案 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>