Создать вложенный словарь с помощью CSV-файла - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь создать несколько вложенных словарей из файла данных CSV. Я не уверен, как правильно отформатировать словарь.

Вот CSV-файл

1,Afghanistan,MENA,20-24,Female,Urban,6.786986809,442.6952889,1.53%

Мне нужно вытащить country, region, age_group, gender, geographic_area, diabetes и population как строки / числа с плавающей запятой.

Вот мой код:

diabetes_data = []
D = {}
fp.readline()
for line in fp:
  line = line.split(',')
  country = str(line[1])
  region = str(line[2])
  age_group = str(line[3])
  gender = str(line[4])
  geographic_area = str(line[5])
  diabetes = int(float(line[6])*1000)
  population = int(float(line[7])*1000)

  tup = (gender, geographic_area, diabetes, population)
  diabetes_data.append(tup)

  D = {country: region: age_group: diabetes_data }

Я пытаюсь вернуть готовый словарь D, в который словарь страны вложен в другой словарь региона, в другой словарь возрастной группы, который имеет значения кортежа diabetes_data.

Я не уверен, как это сделать, в настоящее время я использую цикл for и не уверен, нужно ли мне иметь несколько.

Окончательный словарь должен выглядеть следующим образом:

{'MENA': {'Afghanistan': {'20-24': [('Female', 'Urban', 6786,
442695), ('Male', 'Urban', 2699, 474429)], '35-39': [('Female',
'Urban', 17834, 237228), ('Male', 'Urban', 14852, 262910)], '50-54':
[('Female', 'Urban', 21715, 117219), ('Male', 'Urban', 23055,
126786)], ... and so on

1 Ответ

0 голосов
/ 11 ноября 2018
D[region] = {country: {age_group: diabetes_data}}

Это создает словарь внутри словаря внутри другого словаря со значением в виде кортежа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...