преобразовать словарь со списками в CSV-файл, где столбцы - это ключи, а значения - в строках - PullRequest
0 голосов
/ 25 декабря 2018

Привет, у меня есть словарь, который содержит индикатор, он выглядит так:

{'url' : [ 'malware.com ', 'hack.net ', 'paypalz.org' ] 'IP' ['104.223.89.166' , 104.223.89.136] 'emailIdentifier' : ['liler@bikurcholim.net']}

Мне нужно преобразовать его в CSV, где ключи являются столбцы, а значения в строках.я пытался найти решения в потоке стека и в этом случае, но не нашел.какие-либо предположения, как это сделать?

спасибо

with open('\\cybernet\\cyber_indicators.csv', 'w') as csv_file:

    writer = csv.writer(csv_file)

    dict_writer = csv.DictWriter(csv_file, keys)

    for key, value in dictionary.items():

        writer.writerow([key, value])

1 Ответ

0 голосов
/ 25 декабря 2018
import csv
dictionary={'url' : [ 'malware.com ', 'hack.net ', 'paypalz.org' ] ,'IP' : ['104.223.89.166' , '104.223.89.136'] ,'emailIdentifier' : ['liler@bikurcholim.net']}
list_temp=[]
with open('data.csv','w') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow(dictionary.keys())
    for key, value in dictionary.items():
        list_temp.append(value)
    list_last=[x for x in dictionary.values()]
    max_length=0
    for item in list_last:
        if(len(item)>max_length):
            max_length=len(item)
    for item in list_last:
        append_count=max_length-len(item)
        for i in range(append_count):
            item.append('')
    zipped_list=list_last=set(zip(*list_temp))
    for item in zipped_list:
        writer.writerow(item)

data.csv

url,IP,emailIdentifier
malware.com ,104.223.89.166,liler@bikurcholim.net
paypalz.org,,
hack.net ,104.223.89.136,
...