因此,问题似乎是有些元组没有正确地组织,无法从列表到字典进行一致的转换,您可以这样做:测试这些元组的索引
ls = [('a', 1), (2, 'b'), (3, 'c'), ('a', 2), ('b', 3)]
links = []
for i in ls:
try:
if i[0].isalpha():
links.append({'source': i[1], 'target': i[0]})
except AttributeError:
links.append({'source': i[0], 'target': i[1]})
print(links)
# [{'source': 1, 'target': 'a'}, {'source': 2, 'target': 'b'}, {'source': 3, 'target': 'c'}, {'source': 2, 'target': 'a'}, {'source': 3, 'target': 'b'}]
我们要测试一下
i[0]
如果它的字母至少有一个字符,如果它是,我们将它附加到目标和
i[1]
到来源。另一方面,如果它恰好是
int
将引发一个错误,我们可以使用
try/except
捕捉那个错误,这告诉我们,现在我们的int在
我[ 0 ]
所以我们可以用
我[ 0 ]
作为来源和
我[ 1 ]
作为目标。