Networkx。通过循环节点列表添加属性时,IndexError:列表索引超出范围。

问题描述 投票:0回答:1

在Python中使用Networkx的问题。

我使用定界符','把我的csv文件上传到Python中。现在我有一个节点列表和一个编辑列表。当我试图将csv(节点)文件中的属性分配给一个空字典时,我收到了错误信息。

IndexError: list index out of range

Herbey我加了一段我的代码。

nodereader = csv.reader(nodecsv, delimiter=(','))
nodes= [n for n in nodereader][1:]

node_names = [n[0] for n in nodes] # List 1


household_dict = {}
household_dict[node[0]]=node[2]

为什么它不能工作?问题是我的代码没有把每一行分开到不同的列中。下面是csv文件的结构。

CSV文件(只有一列)。

Id,Label,Household,Producer,Surplus(剩余)

0,Klant1,2,Ja,1 1,Klant2,2,Nee,0 2,Klant3,4,Nee,0

python nodes networkx opencsv index-error
1个回答
0
投票

我不想深入研究你从文件中提取的节点。不过,请看下面解析csv的一般语法。你可以根据你的目的很容易地调整它。

with open('filePath\\fileName.csv', mode='r') as csv_file:
    csv_reader = csv.DictReader(csv_file)
    line_count = 0
    for row in csv_reader:
        if line_count == 0:
            print(f'Column names are {", ".join(row)}')
            line_count += 1
        print(f'\tID: {row["Id"]}, Label: {row["Label"]}, Household: {row["Household"]}, Producer: {row["Producer"]}, Surplus: {row["Surplus"]}')
        line_count += 1
    print(f'Processed {line_count} lines.')
© www.soinside.com 2019 - 2024. All rights reserved.