Python Excel에서 JSON으로 변환


Excel 파일을 JSON 데이터로 변환하는 방법에는 여러 가지가 있습니다. 이 자습서에서는 Excel 파일을 JSON으로 변환하는 두 개의 Python 모듈을 살펴봅니다.

  1. excel2json-3
  2. 판다

excel2json-3 모듈을 사용하여 Excel 파일을 JSON 파일로 변환

Excel 파일을 JSON 파일로 변환하는 매우 간단한 모듈입니다. Excel 시트의 내용은 JSON 문자열로 변환되어 파일에 저장됩니다. 파일 이름은 엑셀 시트 이름에서 파생됩니다. 따라서 이름이 \Numbers 및 \Cars인 두 개의 시트가 있는 경우 JSON 파일의 이름은 각각 Numbers.json 및 Cars.json으로 지정됩니다. 이 모듈은 변환을 위해 .xls 및 .xlsx 파일 형식을 모두 지원합니다. 파일 시스템과 URL에서 Excel 파일을 읽을 수 있습니다. PIP 명령을 사용하여 이 모듈을 설치할 수 있습니다.

$ pip install excel2json-3
import excel2json

excel2json.convert_from_file('records.xlsx')

이 스크립트는 세 개의 JSON 파일을 생성합니다. 직원.json

[
    {
        "EmpID": 1.0,
        "EmpName": "Pankaj",
        "EmpRole": "CEO"
    },
    {
        "EmpID": 2.0,
        "EmpName": "David Lee",
        "EmpRole": "Editor"
    },
    {
        "EmpID": 3.0,
        "EmpName": "Lisa Ray",
        "EmpRole": "Author"
    }
]

자동차.json

[
    {
        "Car Name": "Honda City",
        "Car Model": "City",
        "Car Maker": "Honda",
        "Car Price": "20,000 USD"
    },
    {
        "Car Name": "Bugatti Chiron",
        "Car Model": "Chiron",
        "Car Maker": "Bugatti",
        "Car Price": "3 Million USD"
    },
    {
        "Car Name": "Ferrari 458",
        "Car Model": 458.0,
        "Car Maker": "Ferrari",
        "Car Price": "2,30,000 USD"
    }
]

숫자.json

[
    {
        "1.0": 3.0,
        "2.0": 4.0
    },
    {
        "1.0": "N1",
        "2.0": "N2"
    },
    {
        "1.0": 5.0,
        "2.0": 6.0
    },
    {
        "1.0": 7.0,
        "2.0": 8.0
    }
]

URL에서 엑셀 파일을 읽어야 한다면 convert_from_url() 함수를 사용하세요.

excel2json-3 모듈의 한계

  • 플러그인의 기능은 매우 제한적입니다.
  • 시트, 행 및 열을 건너뛸 수 있는 옵션이 없습니다. 이로 인해 더 큰 Excel 파일을 사용하기가 어렵습니다.
  • JSON은 파일에 저장됩니다. 대부분의 경우 파일로 저장하는 대신 JSON으로 변환하여 프로그램에서 사용하려고 합니다.
  • 정수가 부동 소수점 숫자로 변환됩니다.

Pandas 모듈을 사용하여 Excel 시트를 JSON 문자열로 변환

Pandas 모듈은 Excel 시트를 DataFrame 객체로 읽어들이는 기능을 제공합니다. 헤더 지정, 특정 열 읽기, 행 건너뛰기 등을 위한 많은 옵션이 있습니다. Pandas read_excel() – Python에서 Excel 파일 읽기에서 자세한 내용을 읽을 수 있습니다. to_json() 함수를 사용하여 DataFrame 객체를 JSON 문자열로 변환할 수 있습니다. "Employees\ 시트를 읽고 JSON 문자열로 변환하는 간단한 예를 살펴보겠습니다.

import pandas

excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Employees')

json_str = excel_data_df.to_json()

print('Excel Sheet to JSON:\n', json_str)

산출:

Excel Sheet to JSON:
 {"EmpID":{"0":1,"1":2,"2":3},"EmpName":{"0":"Pankaj","1":"David Lee","2":"Lisa Ray"},"EmpRole":{"0":"CEO","1":"Editor","2":"Author"}}

따라서 열 방향으로 JSON 데이터가 생성됩니다. 행 방향 방향으로 JSON 문자열을 생성하려면 "orient\ 매개 변수 값을 "records\로 전달합니다.

json_str = excel_data_df.to_json(orient='records')

산출:

Excel Sheet to JSON:
 [{"EmpID":1,"EmpName":"Pankaj","EmpRole":"CEO"},{"EmpID":2,"EmpName":"David Lee","EmpRole":"Editor"},{"EmpID":3,"EmpName":"Lisa Ray","EmpRole":"Author"}]

결론

간단하고 잘 구성된 Excel 파일이 있고 이를 JSON 파일로 변환하려는 경우 excel2json-3 모듈을 사용하십시오. 그러나 Excel 데이터를 읽고 JSON 문자열로 변환하는 방식을 더 많이 제어하려면 pandas의 모듈을 사용하십시오.

참조

  • excel2json-3 PyPI.org 페이지
  • Pandas DataFrame to_json() API 문서