python - 在Python中将元组转换为字典

标签 python igraph

我正在开发一个项目,该项目涉及使用 igraph 并从 sqlite3 数据库读取数据。

以下是我的数据库中的列名称 -

['id', 'title', 'authors', 'year', 'pub_venue', 'ref_id', 'ref_num', 'abstract']

其中 id 是整数类型,ref_id 是具有逗号分隔 ref_ids 的文本。

最终目标是使用上述数据在 igraph 中创建一个图,其中 id 是顶点值,ref_id 中的 ids 将用于创建边。 如果我在 igraph 中枚举每个 id 来创建顶点,然后再次枚举 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: invalid literal for int() with base 10: ''

实现这一目标的最快方法是什么?为什么我会遇到上述错误?

如果查询需要更多详细信息,请告诉我。

最佳答案

该错误意味着 row['ref_id'].split(";") 的元素之一不可转换为整数。特别是,它是 ''根据错误。

正如其他答案所暗示的那样,这可能是由空格引起的。但我也注意到,在文本中你说用逗号分割,但在代码中你是根据分号(“;”)分割的?

实际上,您只需打印 row['ref_id'].split(";") 的内容就应该能够弄清楚这一点。在尝试将其转换为 int 之前。另外,作为一个小挑剔,只需替换 row['ref_id']key因为你已经定义了它..

关于python - 在Python中将元组转换为字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33570073/

相关文章:

r - 如何在 igraph 中绘制节点大小的网络度、x 轴的特征向量以及 y 轴的属性?

python - 多态性的实际例子

python - WXPython 与 MatPlotLib

r - 三列图

c++ - 如何在 C++ 中使用 igraph_add_vertices 添加顶点后获取 igraph 顶点 ID

R 从向量/因子到列表

python - 如何使用python中的pop()函数删除偶数

python - 如何用 H2O 拯救整个环境?

python - 如何使用 python 将 IN 或 NOT IN 子句作为变量传递给 postgresql 查询

r - igraph:终端(非根)节点位于同一级别的树形图?