python Excel转xml,json

 注意脚本名称不能用xml.py,包括后面的json也不能直接json.py

否则容易出错:ModuleNotFoundError: No module named 'xml.etree'; 'xml' is not a package

#xml
import os
import openpyxl

imgpath = r'D:\picture'
excelpath = r'D:\2.xlsx'
xmlpath = r'D:'

if __name__ == '__main__':
    imgs = os.listdir(imgpath)
    workBook = openpyxl.load_workbook(excelpath)
    # print(workBook.sheet_names())
    # sheet1 = workBook[workBook.sheetnames[0]]
    # print(sheet1.dimensions)
    sheet = workBook.active
    # cell = sheet['J']
    # print(cell)
    stringName=['采集编号','采集日期','采集批次','采集地点','采集线别','采集方式',]
    for img in imgs:
        # print(img)
        imgname01 = img.split('_')[0]
        for i in sheet.iter_rows(min_row=2):
            # print(len(i))
            # for j in i:
            #     print(j)
                if i[9].value == imgname01:
                    path_t = xmlpath + '\\' + imgname01 + '.txt'
                    w =  open(path_t, 'w', encoding='utf8')
                    w.write('<?xml version="1.0" encoding="UTF-8"?>')
                    w.write('\n')
                    w.write('<root>')
                    w.write('\n')
                    for j in range(len(i)):
                        # print(j.value)
                        if j == 0:
                            first = str(i[7].value)+'_'+str(i[1].value)+'_'+str(i[2].value)

                            w.write('<' + stringName[j] + '>')
                            w.write(first)
                            w.write('</' + stringName[j] + '>')
                            w.write('\n')
                        else:
                            w.write('<'+stringName[j]+'>')
                            w.write(str(i[j].value))
                            w.write('</' + stringName[j] + '>')
                            w.write('\n')

                    w.write('</root>')
                    w.close()
                    path_x = xmlpath + '\\' + imgname01 + '.xml'
                    if os.path.exists(path_x):
                        os.remove(path_x)
                    os.rename(path_t,path_x)







#json
import os
import openpyxl

imgpath = r'D:\picture'
excelpath = r'D:\2.xlsx'
jsonpath = r'D:'

if __name__ == '__main__':
    imgs = os.listdir(imgpath)
    workBook = openpyxl.load_workbook(excelpath)
    # print(workBook.sheet_names())
    # sheet1 = workBook[workBook.sheetnames[0]]
    # print(sheet1.dimensions)
    sheet = workBook.active
    # cell = sheet['J']
    # print(cell)
    stringName=['采集编号','采集日期','采集批次','采集地点']
    for img in imgs:
        # print(img)
        imgname01 = img.split('_')[0]
        for i in sheet.iter_rows(min_row=2):

                if i[9].value == imgname01:
                    path_t = jsonpath + '\\' + imgname01 + '.txt'
                    w =  open(path_t, 'w', encoding='utf8')
                    w.write('{')
                    length = len(i)
                    for j in range(length):
                        if j == 0:
                            first = str(i[7].value)+'_'+str(i[1].value)+'_'+str(i[2].value)
                            w.write('"'+stringName[j]+'"'+':'+'"'+first+'"')
                            w.write(',')
                        elif j == length-1:
                            w.write('"'+stringName[j]+'"'+':'+'"'+str(i[j].value)+'"')
                        else:
                            w.write('"' + stringName[j] + '"' + ':' + '"' + str(i[j].value) + '"')
                            w.write(',')

                    w.write('}')

                    w.close()
                    path_x = jsonpath + '\\' + imgname01 + '.json'
                    if os.path.exists(path_x):
                        os.remove(path_x)
                    os.rename(path_t,path_x)







  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Last login: Fri Jul 14 16:46:34 on ttys000 jeongyiii@Jeongyiii-2 ~ % cd Downloads jeongyiii@Jeongyiii-2 Downloads % python3 json2xml.py Traceback (most recent call last): File "json2xml.py", line 56, in <module> process_json_file(file_path) File "json2xml.py", line 50, in process_json_file dataframe_to_excel(expanded_df, excel_file_path) File "json2xml.py", line 32, in dataframe_to_excel writer.save() AttributeError: 'OpenpyxlWriter' object has no attribute 'save' jeongyiii@Jeongyiii-2 Downloads % vim json2xml.py jeongyiii@Jeongyiii-2 Downloads % python3 json2xml.py Excel file generated: example.xlsx jeongyiii@Jeongyiii-2 Downloads % python3 json2xml.py Excel file generated: example.xlsx jeongyiii@Jeongyiii-2 Downloads % python3 json2xml.py Excel file generated: example.xlsx jeongyiii@Jeongyiii-2 Downloads % vim json2xml.py jeongyiii@Jeongyiii-2 Downloads % python3 json2xml.py Excel file generated: example.xlsx jeongyiii@Jeongyiii-2 Downloads % python3 json2xml.py Excel file generated: example.xlsx jeongyiii@Jeongyiii-2 Downloads % vim json2xml.py jeongyiii@Jeongyiii-2 Downloads % vim json2xml.py def process_json_file(file_path): # Read JSON file json_data = read_json_file(file_path) # Parse JSON object json_obj = json.loads(json_data) # Convert JSON data to DataFrame df = json_to_dataframe(json_obj) # Expand the 'template' column expanded_df = expand_template_column(df) # Write to Excel file excel_file_path = file_path.replace('.json', '.xlsx') dataframe_to_excel(expanded_df, excel_file_path) print("Excel file generated:", excel_file_path) # Usage example file_path = 'example.json' process_json_file(file_path) 说明
最新发布
07-15

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值