Python 如何将pandas DataFrame转换为JSON

Python 如何将pandas DataFrame转换为JSON

Pandas是一个流行的用于数据操作和分析的Python库。在使用Pandas时,常见的任务是将DataFrame转换为JSON(JavaScript Object Notation)格式,这是一种在Web应用程序中广泛使用的轻量级数据交换格式。将pandas DataFrame转换为JSON可以用于数据共享、数据存储和不同编程语言之间的数据传输。

在本教程中,我们将讨论如何使用内置的Pandas函数将pandas DataFrame转换为JSON,探索不同的选项和参数,并提供处理特定场景的示例。

将Pandas DataFrame转换为JSON

在Python的pandas库中,我们可以利用DataFrame.to_json()函数将pandas DataFrame转换为JSON格式。这个函数提供了各种自定义选项,使我们能够获得所需的JSON格式。在接下来的几节中,我们将深入探讨该函数的可接受参数,并详细介绍自定义选项。

下面是用于将pandas DataFrame转换为JSON的DataFrame.to_json()函数的一些重要参数及其可能的值:

  • path_or_buf - 保存生成的JSON的输出位置。它可以是文件路径或缓冲区对象。默认值为None。

  • orient - 生成的JSON的格式。可能的值有’split’、’records’、’index’、’columns’和’values’。默认值为’columns’。

  • date_format - 在DataFrame中用于日期列的日期格式。它可以是任何有效的日期时间格式字符串。默认值为None。

  • double_precision - JSON中浮点数的精度。可以是一个整数值,表示要包含的小数位数。默认值为10。

  • force_ascii - 是否将非ASCII字符编码为其Unicode转义序列。默认值为True。

  • date_unit - 日期列中时间戳的单位。可能的值有’s’(秒)、’ms’(毫秒)和’us’(微秒)。默认值为’ms’。

让我们看几个示例,以更好地理解如何使用DataFrame.to_json()函数。

示例1:基本用法

考虑下面的代码。在这个代码中,我们创建了一个2×2的NumPy数组array_data,包含四个字符串值。然后,我们将这个数组转换为一个列名为’col1’和’col2’的pandas DataFrame df。最后,我们使用to_json()函数将DataFrame转换为一个JSON字符串,并使用print()函数将其打印到控制台。

import numpy as np
import pandas as pd

# create a NumPy array with two rows and two columns
array_data = np.array([['1', '2'], ['3', '4']])

# convert the NumPy array into a pandas DataFrame with column names
df = pd.DataFrame(array_data, columns=['col1', 'col2'])

# convert the DataFrame to a JSON string
json_data = df.to_json()

# print the resulting JSON string
print(json_data)

输出

执行时,将会产生以下输出:

{"col1":{"0":"1","1":"3"},"col2":{"0":"2","1":"4"}}

示例2:将DataFrame转换为JSON

现在让我们看一个例子,演示如何在DataFrame.to_json()函数中使用这些参数将pandas DataFrame转换为JSON。

考虑下面显示的代码。在这个例子中,我们将path_or_buf参数设置为’output.json’,将JSON数据保存到名为’output.json’的文件中。我们将orient参数设置为’records’,将JSON格式化为记录列表。

我们还将date_format参数设置为’iso’,以使用ISO日期格式处理类似日期的列,将double_precision参数设置为2,在浮点数中包含两位小数。最后,我们将force_ascii设置为False,以保留非ASCII字符,并将date_unit设置为’ms’,以将毫秒作为时间戳的单位。

import pandas as pd

# create a sample DataFrame
df = pd.DataFrame({
   'Name': ['John', 'Jane', 'Bob'],
   'Age': [30, 25, 40],
   'Salary': [50000.0, 60000.0, 70000.0],
   'Join_date': ['2022-01-01', '2021-06-15', '2020-11-30']
})

# convert the DataFrame to JSON
json_data = df.to_json(
   path_or_buf='output.json',
   orient='records',
   date_format='iso',
   double_precision=2,
   force_ascii=False,
   date_unit='ms'
)

# print the resulting JSON
print(json_data)

输出:

执行时,它将创建一个名为”output.json”的新文件,文件内容如下所示:

[
   { "Name": "John", "Age": 30, "Salary": 50000.0, "Join_date": "2022-01-01" },
   { "Name": "Jane", "Age": 25, "Salary": 60000.0, "Join_date": "2021-06-15" },
   { "Name": "Bob", "Age": 40, "Salary": 70000.0, "Join_date": "2020-11-30" }
]

结论

总之,在Python中将pandas DataFrame转换为JSON格式是一个直接的过程,可以使用pandas库提供的to_json()方法完成。

该方法允许进行各种自定义,如指定JSON输出格式、日期格式和精度。它还提供了将结果JSON字符串写入文件的功能,方便与其他系统共享数据。通过对to_json()方法及其参数有基本了解,您可以轻松地将pandas DataFrame转换为JSON格式,以在各种应用中使用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程