import pprint
import xlsxwriter
def createDict():
people1 = {'name': 'John', 'age': '27', 'sex': 'Male', 'client': [
{'name': 'Jamie', 'age': '22', 'sex': 'Male'}, {'name': 'Holly', 'age': '22', 'sex': 'Female'}]}
people2 = {'name': 'Marie', 'age': '22', 'sex': 'Female'}
workbook = xlsxwriter.Workbook('myfile.xlsx')
worksheet = workbook.add_worksheet()
row = 0
col = 0
for key in people1:
row += 1
# prints the keys for dicts
worksheet.write(row, col, key)
# prints the value for people 1
worksheet.write(row, col + 1, people1[key])
# workbook.close()
createDict()
我上面有这段代码,我正在尝试打印如下的people1结果:
name: John
age : 27
sex : male
client: name: jamie
age: 22
sex:male
name: holly
age: 22
sex:female
但是,我一直收到此错误:
TypeError: Unsupported type <class 'list'> in write()
因为这是一个列表。.请帮助。这只是我字典的一小部分,在某些情况下,我可能会收到更大的数据,但概念是相同的。
递归函数?
class ExcelWriter:
row = 0
def write_to_excel(self, value, col=0):
if isinstance(value, dict):
for k, v in value.items():
self.write_to_excel(k, col)
self.write_to_excel(v, col+1)
self.row += 1
elif isinstance(value, list):
for item in value:
self.write_to_excel(item, col)
self.row += 1
else:
worksheet.write(row, col, value)
ExcelWriter().write_to_excel(people1)