pandas.DataFrame.to_json() 的“orient”参数的格式是什么

作者:编程家 分类: pandas 时间:2025-10-14

什么是orient参数?

pandas是Python中一个非常强大的数据分析库,提供了丰富的数据处理和分析工具。其中的DataFrame类是pandas中最常用的数据结构之一,可以用来处理二维表格数据。DataFrame提供了to_json()方法,可以将DataFrame对象转换成JSON格式的字符串。

to_json()方法有一个可选参数orient,用于指定输出JSON字符串的格式。orient参数有几种不同的取值,分别对应不同的输出格式。下面将介绍orient参数的几种格式。

格式一:'split'

'split'格式是to_json()方法的默认格式,它将DataFrame的每一列作为一个单独的JSON对象,列名作为键,列的值作为值。这种格式非常适合于将DataFrame转换成JSON数组。

下面是一个使用'split'格式的例子:

python

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie'],

'age': [25, 30, 35],

'city': ['New York', 'London', 'Tokyo']

}

df = pd.DataFrame(data)

json_str = df.to_json(orient='split')

print(json_str)

输出结果如下:

{

"columns": ["name", "age", "city"],

"index": [0, 1, 2],

"data": [["Alice", 25, "New York"], ["Bob", 30, "London"], ["Charlie", 35, "Tokyo"]]

}

格式二:'records'

'records'格式将DataFrame的每一行作为一个单独的JSON对象,行索引作为键,行的值作为值。这种格式适合于将DataFrame转换成JSON数组。

下面是一个使用'records'格式的例子:

python

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie'],

'age': [25, 30, 35],

'city': ['New York', 'London', 'Tokyo']

}

df = pd.DataFrame(data)

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

print(json_str)

输出结果如下:

[

{"name": "Alice", "age": 25, "city": "New York"},

{"name": "Bob", "age": 30, "city": "London"},

{"name": "Charlie", "age": 35, "city": "Tokyo"}

]

格式三:'index'

'index'格式将DataFrame的行索引作为一个单独的JSON对象,列名作为键,行的值作为值。这种格式适合于将DataFrame转换成JSON对象。

下面是一个使用'index'格式的例子:

python

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie'],

'age': [25, 30, 35],

'city': ['New York', 'London', 'Tokyo']

}

df = pd.DataFrame(data)

json_str = df.to_json(orient='index')

print(json_str)

输出结果如下:

{

"0": {"name": "Alice", "age": 25, "city": "New York"},

"1": {"name": "Bob", "age": 30, "city": "London"},

"2": {"name": "Charlie", "age": 35, "city": "Tokyo"}

}

格式四:'values'

'values'格式将DataFrame的所有值作为一个二维数组,行索引和列名均不包含在JSON中。这种格式适合于将DataFrame转换成JSON数组。

下面是一个使用'values'格式的例子:

python

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie'],

'age': [25, 30, 35],

'city': ['New York', 'London', 'Tokyo']

}

df = pd.DataFrame(data)

json_str = df.to_json(orient='values')

print(json_str)

输出结果如下:

[

["Alice", 25, "New York"],

["Bob", 30, "London"],

["Charlie", 35, "Tokyo"]

]

格式五:'columns'

'columns'格式将DataFrame的列名作为一个单独的JSON对象,行索引作为键,列的值作为值。这种格式适合于将DataFrame转换成JSON对象。

下面是一个使用'columns'格式的例子:

python

import pandas as pd

data = {

'name': ['Alice', 'Bob', 'Charlie'],

'age': [25, 30, 35],

'city': ['New York', 'London', 'Tokyo']

}

df = pd.DataFrame(data)

json_str = df.to_json(orient='columns')

print(json_str)

输出结果如下:

{

"name": {"0": "Alice", "1": "Bob", "2": "Charlie"},

"age": {"0": 25, "1": 30, "2": 35},

"city": {"0": "New York", "1": "London", "2": "Tokyo"}

}

orient参数用于指定to_json()方法输出JSON字符串的格式。根据orient参数的不同取值,to_json()方法可以将DataFrame转换成不同格式的JSON字符串,包括'split'、'records'、'index'、'values'和'columns'等。