簡體   English   中英

需要將以下代碼的python輸出導出為json(key:value)格式文件

[英]Need to export the python output of the below code to json (key : value) format file

我正在從Excel文件中打印列名,數據類型和列的最大長度。

下面是代碼和輸出,需要將輸出導出到json文件。

Excel文件(assignment.xlsx):

<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM