Как написать ключ со значениями кортежа в CSV, используя Python - PullRequest
0 голосов
/ 17 мая 2019

Я хочу написать определенный ключ со значениями кортежа в CSV-файле, используя Python. Я не могу в настоящее время использовать Numby или любую другую внешнюю библиотеку Python. Я использую «zip» для достижения этой цели, но только первое значение, связанное с ключом, направляется, тогда как я хочу напечатать все значения в кортеже. Пример словаря и код приведены ниже:

data = {
    "Pakistan": (0.57, 0.05, 0.79),
    "India": (0.47, 0.12, 0.54),
    "Bangladesh": (0.49, 0.17, 0.81)
    }
con_name = input("Write up to three comma-separated countries for which you want to extract data: ")
count = len(re.findall(r'\w+', con_name))
if count == 1:
    con_check1 = con_name.split()[0]
    if con_check1.lower() in map(str.lower, data.keys()):
        con_check1 = con_check1.capitalize()
        x = list(data.keys()).index(con_check1)
        y = [key for key in data.keys()][x]
        csv_columns = ['Country Name','1997','1998','1999']
        with open('Emissions_subset.csv','w') as out:
            csv_out=csv.writer(out)
            csv_out.writerow(csv_columns) 
            z = [y]
            csv_out.writerows(zip(z, data[con_check1]))

Текущий вывод в CSV-файл:

Country Name, 1997, 1998, 1999
Pakistan      0.57

Желаемый вывод:

Country Name, 1997, 1998, 1999
Pakistan      0.57, 0.05, 0.79

Не могли бы вы помочь мне с этим вопросом? В последнее время я задавал некоторые вопросы, и никто не отвечает мне. Я действительно застрял здесь и задаю вопрос только после того, как устал от попыток.

1 Ответ

2 голосов
/ 17 мая 2019

Попробуйте:

   [In]    kv_list = [[key,*val] for key, val in data.items()]
   [In]   print(kv_list)
   [Out]  [['Pakistan', 0.57, 0.05, 0.79], ['India', 0.47, 0.12, 0.54], ['Bangladesh', 0.49, 0.17, 0.81]]

Тогда просто используйте csv_out.writerows(kv_list).

...