Python Excel 转 JSON
将 Excel 文件转换为 JSON 数据的方法有很多。在本教程中,我们将研究两个 python 模块来将 excel 文件转换为 JSON。 excel2json-3 熊猫 使用 excel2json-3 模块将 Excel 文件转换为 JSON 文件 这是一个将 excel 文件转换为 JSON 文件的非常简单的模块。 excel 工作表中的内容将转换为 JSON 字符串并保存在文件中。文件的
将 Excel 文件转换为 JSON 数据的方法有很多。在本教程中,我们将研究两个 python 模块来将 excel 文件转换为 JSON。
-
excel2json-3
-
熊猫
使用 excel2json-3 模块将 Excel 文件转换为 JSON 文件
这是一个将 excel 文件转换为 JSON 文件的非常简单的模块。 excel 工作表中的内容将转换为 JSON 字符串并保存在文件中。文件的名称源自 excel 工作表名称。因此,如果有两个名为“Numbers”和“Cars”的工作表,则 JSON 文件将分别命名为 Numbers.json 和 Cars.json。该模块支持 .xls 和 .xlsx 文件格式进行转换。我们可以从文件系统和 URL 中读取 excel 文件。我们可以使用 PIP 命令安装这个模块。
$ pip install excel2json-3
对于我们的示例,我创建了一个名为“records.xlsx”的 Excel 文件,其中包含三张工作表。 这是将此 excel 文件转换为 JSON 文件的脚本。
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 读取 excel 文件,请使用convert_from_url()
函数。
excel2json-3模块的局限性
-
该插件的功能非常有限。
-
没有选项可以跳过任何工作表、行和列。这使得它很难与更大的 excel 文件一起使用。
-
JSON 被保存到文件中。大多数时候,我们希望将其转换为 JSON 并在我们的程序中使用它,而不是将其保存为文件。
-
整数被转换为浮点数。
使用 Pandas 模块将 Excel 工作表转换为 JSON 字符串
Pandas 模块提供了将 excel 表格读入 DataFrame 对象的功能。有许多选项可以指定标题、读取特定列、跳过行等。您可以在Pandas read_excel() – Reading Excel File in Python中阅读更多相关信息。我们可以使用 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 文档
更多推荐
所有评论(0)