簡體   English   中英

在python中將元組轉換為字典

[英]convert tuples into a dictionary in python

我正在從事一個涉及使用igraph和從sqlite3數據庫讀取數據的項目。

以下是我數據庫中的列名-

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

其中id是整數類型,而ref_id是具有逗號分隔的ref_ids的文本。

最終目標是使用上述數據在igraph中創建圖形,其中id是頂點值,而ref_id中的id將用於創建邊。 如果我枚舉每個id以在igraph中創建頂點,然后再次枚舉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(";")的元素之一無法轉換為整數。 特別是,根據錯誤,它為 ''

其他答案表明,這可能是由空格引起的。 但我也注意到,在文本中您說用逗號分隔,但在代碼中您是基於分號 (“;”)` 分隔的

確實,您應該能夠在嘗試將row['ref_id'].split(";")轉換為int之前,將其內容打印出來。 同樣作為次要的nitpick,只需將row['ref_id']替換為key因為您已經定義了它。

使用row['ref_id'].strip().split(";")避免煩人的空格。 這應該可以解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM