在本教程中,我将使用一个简单的示例向你展示如何将Pandas DataFrame导出到JSON文件。我还将查看你可能应用的不同 JSON 格式。
为了给你提供一些上下文,这里有一个模板,你可以在 Python 中使用该模板将 Pandas DataFrame导出JSON文件:
df.to_json(r'Path to store the exported JSON file\File Name.json')
接下来,你将看到在实践中应用此模板的步骤。
将Pandas DataFrame导出到JSON文件的步骤
第 1 步:收集数据
假设你有以下有关不同产品及其价格的数据:
Product | Price |
Desktop Computer | 700 |
Tablet | 250 |
iPhone | 800 |
Laptop | 1200 |
目标是将上述数据导出为 JSON。
但在导出该数据之前,你需要在 Python 中捕获它。
Pandas DataFrame如何导出到JSON文件?完成此任务的一种方法是创建pandas DataFrame。
第 2 步:创建数据帧
然后,你可以使用以下代码来捕获有关产品和价格的数据:
from pandas import DataFrame
data = {'Product': ['Desktop Computer','Tablet','iPhone','Laptop'],
'Price': [700,250,800,1200]
}
df = DataFrame(data, columns= ['Product', 'Price'])
print (df)
在 Python 中运行代码后,你将获得此DataFrame:
第 3 步:将Pandas DataFrame导出到JSON文件
最后,你可以使用以下模板将 Pandas DataFrame 导出为 JSON:
df.to_json(r'Path to store the exported JSON file\File Name.json')
例如,我将存储导出的 JSON 文件的路径是:
C:\Users\Ron\Desktop\Export_DataFrame.json
你需要调整路径(在下面的Python代码),以反映的位置,你想的JSON文件存储在你的计算机:
from pandas import DataFrame
data = {'Product': ['Desktop Computer','Tablet','iPhone','Laptop'],
'Price': [700,250,800,1200]
}
df = DataFrame(data, columns= ['Product', 'Price'])
df.to_json (r'C:\Users\Ron\Desktop\Export_DataFrame.json')
运行代码(根据你的路径进行调整),JSON 文件将在你指定的位置创建。
你可以通过多种方式查看 JSON 内容。一种简单的方法是将创建的文件拖到你的 Web 浏览器中。然后你应该得到以下结果:
{"Product":{"0":"Desktop Computer","1":"Tablet","2":"iPhone","3":"Laptop"},"Price":{"0":700,"1":250,"2":800,"3":1200}}
然后,你可以使用在线工具,例如JSON Formatter,将你的JSON 格式化为更易读的形式:
在下一节中,我将回顾你可能应用的不同 JSON 格式。
不同的 JSON 格式:
Pandas DataFrame如何导出到JSON文件?有多种方法可以格式化 JSON 字符串。你需要将orient设置为 所需的格式。以下是选项:
- split
- records
- index
- values
- table
- columns (the default format)
例如,如果你设置 orient='split',则这是一般语法的样子
df.to_json(r'Path to store the JSON file\File Name.json',orient='split')
这是我们示例的完整 Python 代码:
from pandas import DataFrame
data = {'Product': ['Desktop Computer','Tablet','iPhone','Laptop'],
'Price': [700,250,800,1200]
}
df = DataFrame(data, columns= ['Product', 'Price'])
df.to_json (r'C:\Users\Ron\Desktop\Export_DataFrame.json', orient='split')
运行上述代码后,你将获得以下输出:
{"columns":["Product","Price"],"index":[0,1,2,3],"data":[["Desktop Computer",700],["Tablet",250],["iPhone",800],["Laptop",1200]]}
如果你使用 JSON Formatter 格式化该输出,你将看到:
DataFrame导出JSON文件:在我们示例的上下文中,以下是你将获得的其他每种格式的输出:
orient=’records’
[{"Product":"Desktop Computer","Price":700},{"Product":"Tablet","Price":250},{"Product":"iPhone","Price":800},{"Product":"Laptop","Price":1200}]
orient=’index’
{"0":{"Product":"Desktop Computer","Price":700},"1":{"Product":"Tablet","Price":250},"2":{"Product":"iPhone","Price":800},"3":{"Product":"Laptop","Price":1200}}
orient=’values’
[["Desktop Computer",700],["Tablet",250],["iPhone",800],["Laptop",1200]]
orient=’table’
{"schema": {"fields":[{"name":"index","type":"integer"},{"name":"Product","type":"string"},{"name":"Price","type":"integer"}],"primaryKey":["index"],"pandas_version":"0.20.0"}, "data": [{"index":0,"Product":"Desktop Computer","Price":700},{"index":1,"Product":"Tablet","Price":250},{"index":2,"Product":"iPhone","Price":800},{"index":3,"Product":"Laptop","Price":1200}]}
orient='columns'(默认)
{"Product":{"0":"Desktop Computer","1":"Tablet","2":"iPhone","3":"Laptop"},"Price":{"0":700,"1":250,"2":800,"3":1200}}
你可以参考 pandas 文档以查看你可能应用的不同格式选项。