2016-01-29 5 views
1

с использованием python3 У меня есть словарь с более чем 100 ключами. значение каждого ключа - это список. то, что я хочу сделать, это написать каждый ключ словаря в документ Excel, причем каждый термин имеет свою собственную ячейку, все в одной строке.Написание словаря со списком значений в файл Excel

row = 0 
col = 0 

myDictionary = { 
    'car seat':['$10', '12', 'IT1'], 
    'piano':['$12', '2', 'IT1'], 
    'picture frame':['$2', '14', 'IT1'], 
    'shoes':['$20', '13', 'IT1'], 
    } 

for key in myDictionary.keys():: 
    Result = [str(key), myDictionary[key]] 
    worksheet.write_row(row, col, Result) 
    row += 1 

ExpectedOutput.xlsx (заголовок не включен):

KEY   /listvalue1/listvalue2/listvalue3 
car seat /$10  /12  /IT1 
piano  /$12  /2  /IT1 
picture frame/$2  /14  /IT1 
shoes  /$20  /13  /IT1 

проблема им с в том, что я могу получить только Excel использовать два столбца: ключ/значение

вместо 4 столбца, которые мне нужны: key/value1/value2/value3

Поскольку у меня более 100 записей в моем словаре, цель состоит в том, чтобы написать e ach ключ к Excel, поэтому я могу сортировать его легко.

ответ

0

Что бы я сделал, это распечатать список, разделенный запятыми, в файл CSV.

"KEY","listvalue1","listvalue2","listvalue3" 
"car seat","$10", "12", "IT1" 
"piano","$12", "2", "IT1" 
"picture frame","$2", "14", "IT1" 
"shoes","$20", "13", "IT1" 

Это легко сделать в Python, и Excel должен иметь возможность его открыть. Затем вы можете манипулировать данными в электронной таблице или затем скопировать их в другую таблицу или вкладку электронных таблиц, если вам это нужно в другом месте.

+0

который работал совершенно. я полагаю, что я переусердствовал, пытаясь использовать словарь вместо списка, потому что я хотел, чтобы термины были «заперты» друг с другом. но, используя список и записывая его в файл xlsx с помощью workheet.write_row() для каждой итерации, я получил его, чтобы сделать именно то, что мне нужно. благодаря!! – indianhearts

2

Вместо того, чтобы вставить ключ в список (который не сделано правильно в данном случае), вы можете просто написать key и value явно:

import xlsxwriter 

workbook = xlsxwriter.Workbook('example.xlsx') 
worksheet = workbook.add_worksheet() 

myDictionary = { 
    'car seat':['$10', '12', 'IT1'], 
    'piano':['$12', '2', 'IT1'], 
    'picture frame':['$2', '14', 'IT1'], 
    'shoes':['$20', '13', 'IT1'], 
    } 

row = 0 
for key in myDictionary.keys(): 
    worksheet.write(row, 0, key) 
    worksheet.write_row(row, 1, myDictionary[key]) 
    row += 1 

workbook.close() 

Выход:

enter image description here

Обратите внимание, что вы можете перебирать свои данные и преобразовывать их более явно, например, конвертировать значения доллара в числа.

 Смежные вопросы

  • Нет связанных вопросов^_^