Python запрашивает ВВОД словаря

#python #api #dictionary

#python #API #словарь

Вопрос:

Я использую Python 3 для размещения некоторых данных через API на веб-сайте. Мне нужно загрузить данные в следующем формате:

 data = {'MA:C0:AD:DR:ES:S1': {'ip': '1.1.1.1', 'name': 'TEST2'}, 'MA:C0:AD:DR:ES:S2': {'ip': '2.2.2.2', 'name': 'TEST'}}
  

У меня есть CSV-файл, в котором у меня есть все mac-адреса, IP-адреса и имена, которые я хочу загрузить.
CSV выглядит следующим образом:

 MAC, IP, NAME
MA:C0:AD:DR:ES:S1, 1.1.1.1, TEST
MA:C0:AD:DR:ES:S2, 2.2.2.2, TEST2
MA:C0:AD:DR:ES:S3, 3.3.3.3, TEST3
MA:C0:AD:DR:ES:S4, 4.4.4.4, TEST4

  

Как я могу использовать эти данные из CSV, чтобы загрузить их как словарь (см. Пример) на веб-сайт?
Заранее спасибо!

Комментарии:

1. Вы что-нибудь пробовали?

Ответ №1:

Вот так

 import csv
data = {}
with open("input.csv") as tsvfile:
    reader = csv.reader(tsvfile, delimiter=",")
    for idx,row in enumerate(reader):
      if idx > 0:
        data[row[0]] = {'ip': row[1],'name':row[2]}
print(data)
  

ввод.csv

 MAC, IP, NAME
MA:C0:AD:DR:ES:S1, 1.1.1.1, TEST
MA:C0:AD:DR:ES:S2, 2.2.2.2, TEST2
MA:C0:AD:DR:ES:S3, 3.3.3.3, TEST3
MA:C0:AD:DR:ES:S4, 4.4.4.4, TEST4
  

вывод

 {'MA:C0:AD:DR:ES:S1': {'ip': ' 1.1.1.1', 'name': ' TEST'}, 'MA:C0:AD:DR:ES:S2': {'ip': ' 2.2.2.2', 'name': ' TEST2'}, 'MA:C0:AD:DR:ES:S3': {'ip': ' 3.3.3.3', 'name': ' TEST3'}, 'MA:C0:AD:DR:ES:S4': {'ip': ' 4.4.4.4', 'name': ' TEST4'}}
  

Комментарии:

1. Вау, чувак! Я так долго шел, даже не зная ‘enumerate’ в Python! Вы просто открываете для меня новый мир :). Спасибо за ваш ответ! Это работает как шарм.