Python 实现Excel 转 JSON

Python 实现Excel 转 JSONPythonExcel转JSON代码:importxlrd#需要1.2.0版本的,2.0以上的版本只能读取.xls类型的文件importcsv#读取文件(.xlsx.xls.csv)然后返回字典数据defreadFile(filePath):try:fileType=filePath.split(“.”)[-1]print(f'{filePath}\t{fileType}’)iffileType==’

大家好,欢迎来到IT知识分享网。

Python Excel 转 JSON

代码:

import xlrd #需要1.2.0版本的,2.0以上的版本只能读取.xls类型的文件
import csv

# 读取文件(.xlsx .xls .csv) 然后返回字典数据
def readFile(filePath):
    try:
        fileType = filePath.split(".")[-1]
        print(f'{ 
     filePath}\t{ 
     fileType}')
        if fileType == 'xlsx' or fileType=='xls':
            res = []
            wb = xlrd.open_workbook(filePath)
            sh = wb.sheet_by_index(0)
            title = []
            for item in sh.row_values(0):
                title.append(item)
            data = []
            # 实现第一行为key,剩下的为value 转为字典了
            [[data.append({ 
   title[index]: transfer(sh.row_values(it)[index]) for index in range(0,len(title))})] for it in range(1,sh.nrows)]
            return data
        elif fileType == "csv":
            data = []
            with open(filePath) as csvfile:
                rows = csv.reader(csvfile)  # 使用csv.reader读取csvfile中的文件
                title = next(rows)  # 读取第一行每一列的标题
                [[data.append({ 
   title[index]: transfer(it[index]) for index in range(0, len(title))})] for it in rows]
            return data
        else:
            return -1
    except(EOFError):
        print("转化过程出错!")
        print(EOFError)
        return -1


# 字符串输入,转成相应的类型 
def transfer(string):
    try:
        if float(string) == float(int(float(string))):
            return int(string)
        else:
            return float(string)
    except:
        pass
    return True if string.lower() == 'true' else (False if string.lower() == 'false' else string)

测试:

在这里插入图片描述

![在这里插入图片描述],https://源站可能有防盗链机制,建议将图片保存下来直接上传(img-blog.csdnimg.cn/b050bd0)(Excb1042adea42b1laad9转JSON.assets/1648875947791.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bbk,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2NsYXJrY2E1Ng==,size_20,color_FFFFFF,t_70,g_se,x_16)
Excel转JSON.assets/1648875979541.png)]

存为JSON

r = readFile(r''+os.path.join(BASE_DIR,"root","测试.xlsx"))
f = open("./测试.json",'wb',encoding='utf-8')
json.dump(f,r,ensure_ascii=False)

如果Excel中有中文的话,需要encoding=’utf-8’和ensure_ascii=Fasle这两个配置,不然存入进去的就不是中文了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GyA15Y617856618474e41f9c3.png)
Excel转JSON.assets/1648876593964.png)]

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/11972.html

(0)
上一篇 2024-03-18 13:26
下一篇 2024-03-18 17:26

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信