Python Pandas - 读取和写入JSON文件



Pandas库提供了强大的函数,用于以各种格式读取和写入数据。其中一种格式是JSON(JavaScript对象表示法),它是一种轻量级的数据交换格式,易于人工读取和写入。JSON广泛用于在服务器和Web应用程序之间传输数据。

JSON文件以结构化格式存储数据,类似于Python中的字典或列表。JSON文件扩展名为.json。下面您可以看到JSON文件中数据的样式:

[
   {
      "Name": "Braund",
      "Gender": "Male",
      "Age": 30
   },
   {
      "Name": "Cumings",
      "Gender": "Female",
      "Age": 25
   },
   {
      "Name": "Heikkinen",
      "Gender": "female",
      "Age": 35
   }
]

在本教程中,我们将学习如何使用Pandas处理JSON文件,包括读取和写入JSON文件以及一些常见的配置。

读取JSON文件

pandas.read_json()函数用于将JSON数据读取到Pandas DataFrame中。此函数可以接受文件路径、URL或JSON字符串作为输入。

示例

以下示例演示了如何使用pandas.read_json()函数读取JSON数据。这里我们使用StringIO将JSON字符串加载到类似文件的对象中。

import pandas as pd
from io import StringIO

# Create a string representing JSON data
data = """[
   {"Name": "Braund", "Gender": "Male", "Age": 30},
   {"Name": "Cumings", "Gender": "Female", "Age": 25},
   {"Name": "Heikkinen", "Gender": "Female", "Age": 35}
]"""

# Use StringIO to convert the JSON formatted string data into a file-like object
obj = StringIO(data)

# Read JSON into a Pandas DataFrame
df = pd.read_json(obj)

print(df)

以下是上述代码的输出:

Name Gender Age
0 Braund Male 30
1 Cumings Female 25
2 Heikkinen Female 35

写入JSON文件

Pandas提供.to_json()函数,可以使用Pandas DataFrame或Series对象中的数据来写入或创建JSON文件。此函数用于将Pandas数据结构对象转换为JSON字符串,并允许您使用多个参数自定义JSON输出的格式。

示例:写入JSON文件的基本示例

这是一个演示如何将Pandas DataFrame写入JSON文件的示例。

import pandas as pd

# Create a DataFrame from the above dictionary
df = pd.DataFrame({"Name":["Braund", "Cumings", "Heikkinen"], 
"Gender": ["Male", "Female", "Female"],
"Age": [30, 25, 25]})
print("Original DataFrame:\n", df)   

# Write DataFrame to a JSON file
df.to_json("output_written_json_file.json", orient='records', lines=True)

print("The output JSON file has been written successfully.")

以下是上述代码的输出:

Original DataFrame:
Name Gender Age
0 Braund Male 30
1 Cumings Female 25
2 Heikkinen Female 35
The output JSON file has been written successfully.

执行上述代码后,您可以在工作目录中找到名为output_written_json_file.json的已创建JSON文件。

示例:使用split方向写入JSON文件

以下示例使用split方向将简单的DataFrame对象写入JSON。

import pandas as pd
from json import loads, dumps

# Create a DataFrame
df = pd.DataFrame(
   [["x", "y"], ["z", "w"]],
   index=["row_1", "row_2"],
   columns=["col_1", "col_2"],
)

# Convert DataFrame to JSON with 'split' orientation
result = df.to_json(orient="split")
parsed = loads(result)

# Display the JSON output
print("JSON Output (split orientation):")
print(dumps(parsed, indent=4))

以下是上述代码的输出:

JSON Output (split orientation):
{
   "columns": [
      "col_1",
      "col_2"
   ],
   "index": [
      "row_1",
      "row_2"
   ],
   "data": [
      [
         "x",
         "y"
      ],
      [
         "z",
         "w"
      ]
   ]
}
广告