我正在做一个项目,涉及到使用igraph和从sqlite3数据库读取数据。
以下是我的数据库中的列名-
['id', 'title', 'authors', 'year', 'pub_venue', 'ref_id', 'ref_num', 'abstract']
其中id是整数类型,
ref_id
是具有逗号分隔的ref_id的文本。最终目标是使用上述数据在iggraph中创建一个图,其中id是一个顶点值,ref_id中的id将用于创建边。
如果我枚举每个id以在iggraph中创建顶点,然后再次枚举id以创建边,那么性能将受到严重影响。
因此决定使用
row['id']
作为键和row['ref_id']
作为值将元组列表转换为字典,并使用此字典在igraph中创建图形。在下面我也得到了错误-
b = {}
for row in list(res):
key = row['id']
val = 0
if row['ref_id'] != None:
val = map(int, row['ref_id'].split(","))
b[key] = val
ValueError:基为10的int()的文本无效:''
最快的方法是什么?为什么我能克服错误?
如果查询需要更多详细信息,请告诉我。
最佳答案
错误意味着row['ref_id'].split(";")
的元素之一不能转换为整数。特别是,根据错误,它是空的。
这可能是由其他答案所暗示的空白引起的。但我也注意到,在文本中,你说用逗号分隔,而在代码中,你用分号(“;”)分隔?
实际上,在试图将其转换为int之前,您应该能够通过打印''
的内容来解决这个问题。同样,作为一个小问题,只需将row['ref_id'].split(";")
替换为row['ref_id']
,因为您已经定义了它。。
关于python - 在python中将元组转换为字典,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33570073/