pandas.DataFrame.to_json()
方法可以将数据框按照行或列的方向转换为JSON格式。如果按行转json,则一个DataFrame的每一行会被转换为一个JSON对象,而列名则变成 JSON 对象的属性名。以下是完整的攻略。
1. 基本使用
pandas.DataFrame.to_json()
方法默认按照列的方向转换为 JSON。若要按行转换为 JSON,必须设置参数 orient='records'
,其中'records'表示按照行转换。
import pandas as pd
data = {'name': ['Jerry', 'Kobe', 'Tom'], 'age': [21, 41, 32]}
df = pd.DataFrame(data)
# 按照行转换为JSON
json_str = df.to_json(orient='records')
print(json_str)
上述代码会输出如下结果:
[{"name":"Jerry","age":21},{"name":"Kobe","age":41},{"name":"Tom","age":32}]
可以看到,输出的 JSON 数据是一个由每行组成的 JSON 数组,每一行作为一个 JSON 对象,列名成为了 JSON 对象的属性名。
2. 编码处理
默认情况下,to_json()方法生成的字符串编码为utf-8,并且用双引号引起来。如果需要指定编码为其他格式或者用单引号包围字符串,则需要对to_json()方法的参数进行相应的配置,如:
import pandas as pd
data = {'name': ['Jerry', 'Kobe', 'Tom'], 'age': [21, 41, 32]}
df = pd.DataFrame(data)
# 按照行转换为JSON,并设置编码为unicode,且使用单引号
json_str = df.to_json(orient='records', force_ascii=False, lines=True).replace('"', "'")
print(json_str)
上述代码指定了 force_ascii=False
来避免使用 ASCII 编码,同时指定了 lines=True
来每行输出 JSON 对象,并使用 replace
方法将双引号替换为单引号。运行后,输出的结果如下:
{'name': 'Jerry', 'age': 21}
{'name': 'Kobe', 'age': 41}
{'name': 'Tom', 'age': 32}
本例中,每个 JSON 对象都单独放在一行,且所有字符串都用单引号括起来。
以上就是使用pandas.DataFrame.to_json()
方法按行转换为JSON的方法攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas.DataFrame.to_json按行转json的方法 - Python技术站