在Python中将xls转换为json [英] convert xls to json in python

查看:84
本文介绍了在Python中将xls转换为json的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将xls转换为json,但是当我执行代码时,它并没有给我xls工作表中的数据,而只是给了我json结构. 下面是我正在运行的代码,我无法理解我应该对此进行进一步的修改,以便获得一个完美的json文件.

I am trying to convert xls to json and but when I am executing the code it's not giving me the data inside xls sheet, it's only giving me the json structure. Below is the code which I am running, I am not able to understand what modification I should further make in this so that I can get a perfect json file.

请注意-输入采用二进制流的形式,而输出也采用流而不是文件的形式.

Please note - input is in the form of binary stream and output is also in the form of a stream and not file.

    #!/usr/bin/python -u
import sys
import xlrd
import simplejson
from collections import OrderedDict

wb = xlrd.open_workbook(file_contents=sys.stdin.read())

for sheet_index in range(wb.nsheets):
#       print sheet_index
        sh =  wb.sheet_by_index(sheet_index)
       # print "Processing sheet no ", sheet_index
        attributes = sh.row_values(0)
        #print attributes
        rows_list = []
        attr_list = []
       # print attr_list[0]

        for rownum in range(1,sh.nrows):
                row_val_list = sh.row_values(rownum)
                row_dict = OrderedDict()
                for index in range(len(attr_list)):
                        row_dict[attr_list[index]] = row_val_list[index]

                #row_dict['ID'] = row_val_list[0]
                #row_dict['Name'] = row_val_list[1]

                #rows_list.append(row_dict)

        #json_data = simplejson.dumps(rows_list)
        #sys.stdout.write(json_data)
                rows_list.append(row_dict)
                json_data = simplejson.dumps(rows_list)
                sys.stdout.write(json_data)

#       json_data = simplejson.dumps(rows_list)

        #sys.stdout.write(json_data)
~

非常感谢您的帮助

推荐答案

这是正确的工作python代码

here is the correct working python code

#!/usr/bin/python -u
import sys
import xlrd
import simplejson
from collections import OrderedDict

wb = xlrd.open_workbook(file_contents=sys.stdin.read())

#print "Sheets are .... ", wb.nsheets

for sheet_index in range(wb.nsheets):
        sh =  wb.sheet_by_index(sheet_index)

        if sh.nrows == 0:
                continue

        attr_list = sh.row_values(0)

        rows_list = []

        for rownum in range(1,sh.nrows):
                row_values = sh.row_values(rownum)
                 row_dict = OrderedDict()

                for index in range(len(attr_list)):
                        row_dict[attr_list[index]] = row_values[index]



                rows_list.append(row_dict)

        json_data = simplejson.dumps(rows_list)
        sys.stdout.write(json_data)

这篇关于在Python中将xls转换为json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆