[英]Need to export the python output of the below code to json (key : value) format file
我正在從Excel文件中打印列名,數據類型和列的最大長度。
下面是代碼和輸出,需要將輸出導出到json文件。
<html>
<table >
<thead>
<tr>
<th>Type</th>
<th>Amount received</th>
<th>Currency</th>
<th>Flag</th>
<th>Date</th>
</tr>
</thead>
<tbody>
<tr>
<td>Educationsl</td>
<td>1422.00</td>
<td>USD</td>
<td>2018-11-30</td>
</tr>
</tbody>
</table>
</html>
Column Name : Type
Data type : String
Size : 11
Column Name : Amountreceived
Data type : Float
Size : 6
Column Name : Currency
Data type : String
Size : 3
Column Name : Flag
Data type : String
Size : 1
Column Name : Date
Data type : Float
Date format : ddmmyyyy
import string
import re
import datetime
import xlrd
loc = r"C:\Users\Documents\PythonStuff\assignment.xlsx"
wb = xlrd.open_workbook(loc)
sheet = wb.sheet_by_index(0)
for i in range(sheet.ncols):
print ("Column Name : " + re.sub('[^A-Za-z0-9]+', '', sheet.cell_value(0, i).replace(' ','_')))
##Data Type
if str(sheet.cell_type(1,i)) == '1':
print ("Data type : String ")
elif isinstance(sheet.cell_value(1,i), float) == True:
print ("Data type : Float ")
elif str(sheet.cell_type(1,i)) =='3':
print ("Data type : Date ")
## Date Format
if str(sheet.cell_type(1,i)) =='3':
print ("Date format : " + "ddmmyyyy" +"\n ")
else:
print ("Size : " + str(len (str(sheet.cell_value(1,i))))+"\n ")
{"Excel": [{"Type": "Educational", "Amount received": "1422.00", "Currency": "USD", "Flag": "N", "Date": "2018-11-30"} ]}
我假設您要使用第一行的值作為dict鍵,並且每一行都是列表中的一項。 將此添加到您的代碼:
keys = [i.value for i in sheet.row(0)]
sheet_dict = {'Excel': list()}
for row in range(1, sheet.nrows):
row_dict = {}
for col in range(sheet.ncols):
row_dict[keys[col]] = sheet.cell_value(rowx=row, colx=col)
sheet_dict['Excel'].append(row_dict)
print(sheet_dict)
或者,如果您想要一個漂亮的輸出:
import json
print(json.dumps(sheet_dict, sort_keys=True, indent=4))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.