我有一个二分法,我想把它放在一个excel单元格里。
import datetime
my_dict = {
'key1': 'MOCK-12345-67890:09876',
'key2': 'MOCK-abcdef-ghijklmnop',
'key3': datetime.datetime.now(), # datetime format
# ...
'key15': 15029.62946216, # float
'key16': [ 'MOCK-1', 'MOCK-2' ], # list
'info': { # dictonary
'key_sub_1': 3934823,
# ...
'key_sub_25': 'MOCK-A'
},
}期望输出: A2 ={key1:‘MOCK 12345-67890:09876’,‘key 2’:‘MOCK ghijklmnop’,‘key 3’:datetime.datetime(2021,11,30,9,25,14,548815),‘key 15’:15029.62946216,‘key 16’:‘mok-1’,‘mok-2’,'info':{'key_sub_1':3934823,'key_sub_25':‘MOCK A’}}
我的尝试(用熊猫):
import csv
import pandas as pd
import datetime
my_dict = {
'key1': 'MOCK-12345-67890:09876',
'key2': 'MOCK-abcdef-ghijklmnop',
'key3': datetime.datetime.now(), # datetime format
# ...
'key15': 15029.62946216, # float
'key16': [ 'MOCK-1', 'MOCK-2' ], # list
'info': { # dictonary
'key_sub_1': 3934823,
# ...
'key_sub_25': 'MOCK-A'
},
}
data = {
'Col1': str(my_dict),
'Col2':'something wonderful'
}
df = pd.DataFrame(data, index = [0])
writer = pd.ExcelWriter('delme1.xlsx', engine='openpyxl')
df.to_excel( writer, sheet_name = 'Sheet 1', index=False)
writer.save()现在,我爱熊猫图书馆,但不如真正的动物。当上面的解决方案起作用时,我想知道是否有一种非熊猫的方法来做同样的事情,除非这是最好的(在效率上)。
总之
万一我错过了一些简单的东西--我不是蟒蛇的初学者,但这是我卑微的荣耀。
编辑:为什么在一个单元格中?
我知道在excel中很容易用表格的格式列出这个小块,但这不是我想要的。
发布于 2021-11-30 04:47:00
正如您在代码中所看到的,熊猫使用“openpyxl”作为引擎。因此,这是一种很好的方法。您可以直接使用openpyxl,如下所示。
import openpyxl as xl
import datetime
my_dict = {
'key1': 'MOCK-12345-67890:09876',
'key2': 'MOCK-abcdef-ghijklmnop',
'key3': datetime.datetime.now(), # datetime format
# ...
'key15': 15029.62946216, # float
'key16': [ 'MOCK-1', 'MOCK-2' ], # list
'info': { # dictonary
'key_sub_1': 3934823,
# ...
'key_sub_25': 'MOCK-A'
},
}
wb = xl.Workbook() # create a new workbook
ws = wb.worksheets[0] # select the first worksheet
# write values to cells
ws["A1"].value = str(my_dict)
ws["B1"].value = "something wonderful"
# or you can try this
# ws.cell(row=1, column=1).value = str(my_dict)
# ws.cell(row=1, column=2).value = "something wonderful"
wb.save("delme1.xlsx") # save the workbook
wb.close() # close the workbookhttps://stackoverflow.com/questions/70164347
复制相似问题