Преобразование CSV в JSON с помощью цикла for на CENTOS

Простой способ заставить браузер загружать файл - это сделать такой запрос:

 function downloadFile(urlToSend) {
     var req = new XMLHttpRequest();
     req.open("GET", urlToSend, true);
     req.responseType = "blob";
     req.onload = function (event) {
         var blob = req.response;
         var fileName = req.getResponseHeader("fileName") //if you have the fileName header available
         var link=document.createElement('a');
         link.href=window.URL.createObjectURL(blob);
         link.download=fileName;
         link.click();
     };

     req.send();
 }

Это открывает всплывающее окно браузера.

0
задан Lyazarus 27 March 2019 в 08:02
поделиться

2 ответа

Код ниже был протестирован в Python 3.6 и 2.7

(я думаю, это то, что вы ищете)

reader = [['1','2','3'],['11','22','33'],['111','222','333']]
csv_rows = []    
title = ['T1','T2','T3']
for row in reader:
    csv_rows.extend([ {title[i]:row[i] for i in range(len(title))} ])

print(csv_rows)

Выход

[{'T2': '2', 'T3': '3', 'T1': '1'}, {'T2': '22', 'T3': '33', 'T1': '11'}, {'T2': '222', 'T3': '333', 'T1': '111'}]
0
ответ дан balderman 27 March 2019 в 08:02
поделиться

Небольшой совет по оптимизации и удобочитаемости: по возможности избегайте выбора индекса.
Если вы выполняете итерации как по индексу, так и по значению итерируемого, избегайте использования range (len (x)) и используете непосредственно enumerate, это намного быстрее в python и более читабельно.

Улучшение ответа @ balderman:

reader = [['1','2','3'],['11','22','33'],['111','222','333']]
csv_rows = []
title = ['T1','T2','T3']
for row in reader:
    csv_rows.extend([{val: row[idx] for idx, val in enumerate(title)}])
print(csv_rows)

Еще лучше и понятнее избегать использования индексов вообще:

reader = [['1','2','3'],['11','22','33'],['111','222','333']]
csv_rows = []
title = ['T1','T2','T3']
for row in reader:
    csv_rows.extend([ {t_val: r_val for (t_val, r_val) in zip(title, row)} ])
print(csv_rows)

Еще более компактно (и быстрее):

[ 112]

Список и диктовки немного сложны в начале, но если вы думаете о них как о «циклах с положением после», они не такие странные.

0
ответ дан Alberto Chiusole 27 March 2019 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: