簡體   English   中英

python從excel電子表格中提取數據到json表單

[英]python extract data from excel spreadsheet to json form

我想讓Python從excel電子表格中提取一些值,然后發送到要由javascript處理的網頁。 不知道如何最好的方法。 我想創建一個dict對象,並以json形式將其返回給js。

基本上,從excel電子表格中提取的值如下

Design Lump Sum:
design_cells[0].value, design_cells[1].value
design_cells[0].value, design_cells[1].value
design_cells[0].value, design_cells[1].value
design_cells[0].value, design_cells[1].value
design_cells[0].value, design_cells[1].value
...
..
.
Capex Lump Sum:
Capex_cells[0].value, Capex_cells[1].value
Capex_cells[0].value, Capex_cells[1].value
Capex_cells[0].value, Capex_cells[1].value
Capex_cells[0].value, Capex_cells[1].value
Capex_cells[0].value, Capex_cells[1].value
...
..
.

讓python從上面創建dict或json對象的任何幫助。

請參閱下面的提取代碼,該代碼對行值進行迭代,

import xlrd
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import json
    book = xlrd.open_workbook("Glebe TE - Master Invoicing.xlsm")
    first_sheet = book.sheet_by_index(1)

    for i in range(12,19):
        design_cells = first_sheet.row_slice(rowx=i, start_colx=2, end_colx=4)

        if str(design_cells[0].value) and str(design_cells[1].value):
            print str(design_cells[0].value)
            print str(design_cells[1].value)


    for i in range(22,155):
        capex_cells = first_sheet.row_slice(rowx=i, start_colx=2, end_colx=4)
        if str(capex_cells[0].value) and str(capex_cells[1].value):
            print str(capex_cells[0].value)
            print str(capex_cells[1].value)


    for i in range(157,175):
        Opex_cells = first_sheet.row_slice(rowx=i, start_colx=2, end_colx=4)
        if str(Opex_cells[0].value) and str(Opex_cells[1].value):
            j = j + 1
            print str(Opex_cells[0].value)
            print str(Opex_cells[1].value)

好吧,如果您正在print ,為什么不將它們打包到一個數組中,其中array元素是一行,並且您有一個僅包含單個數組或僅包含數組的dict:

alist = []    
tlist = []

for i in range(12,19):
    design_cells = first_sheet.row_slice(rowx=i, start_colx=2, end_colx=4)
    if str(design_cells[0].value) and str(design_cells[1].value):
        #print str(design_cells[0].value)
        #print str(design_cells[1].value)
        alist.append([str(design_cells[0].value), str(design_cells[1].value)]

alist將是: [ [0value, 1value], [0value, 1value],... ]

編輯:OP顯然想要字典列表(其值也是列表):

tlist.append({'Design Sum': alist})
alist = [] # clear alist for next group

然后,您需要做的是: json_dumps(tlist)將該對象轉換為json字符串...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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