我想创建多个词典,因为它们都有一个CSV文件第一行的唯一标识符
我想拨打2911 [' ipadd']返回CSV文件第二行的相关代码,但我很难过。
我发现这似乎与我想达到的目标非常接近Creating multiple nested dictionaries from .txt file
然而,人们推荐的东西并不适用于我的解决方案,因此它会受到影响。
mylist = []
with open('file.csv','r') as f:
reader = csv.reader(f)
for row in reader:
mylist.append({'name': row[0], 'ipadd': row[1], 'mac': row[2], 'interfaces': row[3:]})
for line in mylist:
print(line['ipadd'])
我尝试通过第一行唯一标识变量,然后使用它来附加信息,但当然变量没有附加'功能
2811,1.1.1.1,AA:BB:CC:DD:EE,Fa0 / 0,Fa0 / 1,Fa1 / 0,Fa1 / 1
2911,2.2.2.2,BB:CC:DD:EE:FF,S0 / 0/0,S0 / 0/1,S0 / 1/0,S0 / 1/1
答案 0 :(得分:1)
你可以试试这个:
import csv
headers = ['name', 'ipadd', 'mac', 'interfaces']
new_data = [{a:b for a, b in zip(headers, i[:3]+[i[3:]])} for i in csv.reader(open('file.csv'))]
答案 1 :(得分:1)
我做了一个工作;我最终创建了一个对象
class router:
name = ''
ipadd = ''
mac = ''
interfaces = []
def __init__(self, name, ipadd, mac, interfaces):
self.name = name
self.ipadd = ipadd
self.mac = mac
self.interfaces = interfaces
with open('file.csv') as f:
reader = csv.reader(f)
for row in reader:
item = row[0]
newitem = item.split('\t')
mylist.append(router(newitem[0], newitem[1], newitem[2], newitem[3:]))