Я сбрасываю данные из нескольких таблиц URL. Мой код позволяет мне получить такую CSV (с помощью запятой, как кома ... ЕВРОПА)Как создать такой словарь?
a;1 -------- 1st URL
b;2
c;3
d;4
e;5
a;7 ---------- 2nd URL
b;3
c;5
d;8
e;9
a;9 ---------- 3rd URL
b;3
y;5
The --- URL не являются частью CSV. Это просто показать вам, где данные для URL1 начинаются, и так далее.
Я никогда не знаю заранее, сколько полей будет содержать URL, и какие поля он собирается содержать. Я хочу, чтобы добраться до CSV хорошо организованной глядя, как это (на примере):
Name ; 1stUrl ;2ndURl ;3rd Url
a;1;7;9
b;2;3;3
c;3;5;ø
d;4;8;ø
e;5;9;ø
y;ø;ø;5
Я не очень волнует порядка а, б, в, г. Поля могут быть в ordre, которые они предпочитают больше всего.
У меня есть две проблемы: - когда код встречает новое поле, он должен добавить его в список полей (пример поля «y»). - код должен оставить пустое место в вакууме; ø; когда в URL-адресе для этого поля нет ключа.
Я пробовал что-то плохое, но это явно не так. Даже концептуально, меня там нет.
from collections import *
import csv
def parse_csv(content, delimiter = ';'):
csv_data = []
for line in content.split('\n'):
csv_data.append([x.strip() for x in line.split(delimiter)]) # strips spaces also
return csv_data
s =parse_csv(open('raw.csv','rU', encoding='utf8').read())
print(len(s))
dic = defaultdict(list)
for n in range(0,len(s)):
if (len(s[n]) == 2):
key = s[n][0]
val = s[n][1]
print(key)
print(val)
writer = csv.writer(open('dict.csv', 'w',encoding='utf8'), delimiter=';')
for key, value in dico.items():
writer.writerow([key, value])
Что вы думаете об этом?
Любая помощь будет оценена ребятами :)!
Благодарим за предоставленный вам четкий ответ. Но я не уверен, что работает именно так, как я хочу, чтобы он работал. Я был не очень ясен, и я сожалею об этом. Действительно, в вашем окончательном dic у нас нет информации, кроме как в поле «y», 5 поступает из третьего URL-адреса. Действительно, он помещается в первую позицию, справа внизу, a1, которые образуют первый URL-адрес. – BoobaGump
хорошо и откуда вы знаете, когда URL-адрес завершен? Есть ли как «код остановки», чтобы узнать, что один URL-адрес завершен, а другой начинается? – Challensois
Нет. Нет. Теперь список списков пар, который позволяет мне знать, когда URL-адрес останавливается. Он работает сейчас. Я обновлю рабочий ответ. – BoobaGump