1、pandas DataFrame转json
# -*- coding: utf-8 -*-
import os
import pandas as pd
import json
# df转json
def df2json():
# 创建数据
data = {
'序号': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'姓名': ['张三', '李四', '王五', '赵六', '钱七', '孙八', '周九', '吴十', '郑十一', '冯十二'],
'年龄': [21, 22, 23, 24, 25, 26, 27, 28, 29, 30],
'身高': [170, 175, 165, 180, 173, 176, 165, 181, 169, 178],
'体重': [60, 70, 55, 80, 63, 66, 56, 82, 61, 74]}
# 构造DataFrame
df = pd.DataFrame(data)
# 输出DataFrame
print(df)
# 将DataFrame转为JSON格式
json_str = df.to_json(orient="records")
#print(json_str)
json_obj = json.loads(json_str)
with open('test.json', 'w', encoding='utf-8') as f:
json.dump(json_obj, f, indent=4, ensure_ascii=False)
# main function
if __name__ == '__main__':
df2json() # df转json
控制台输出:
序号 姓名 年龄 身高 体重
0 1 张三 21 170 60
1 2 李四 22 175 70
2 3 王五 23 165 55
3 4 赵六 24 180 80
4 5 钱七 25 173 63
5 6 孙八 26 176 66
6 7 周九 27 165 56
7 8 吴十 28 181 82
8 9 郑十一 29 169 61
9 10 冯十二 30 178 74
test.json文件
[
{
"序号": 1,
"姓名": "张三",
"年龄": 21,
"身高": 170,
"体重": 60
},
{
"序号": 2,
"姓名": "李四",
"年龄": 22,
"身高": 175,
"体重": 70
},
{
"序号": 3,
"姓名": "王五",
"年龄": 23,
"身高": 165,
"体重": 55
},
{
"序号": 4,
"姓名": "赵六",
"年龄": 24,
"身高": 180,
"体重": 80
},
{
"序号": 5,
"姓名": "钱七",
"年龄": 25,
"身高": 173,
"体重": 63
},
{
"序号": 6,
"姓名": "孙八",
"年龄": 26,
"身高": 176,
"体重": 66
},
{
"序号": 7,
"姓名": "周九",
"年龄": 27,
"身高": 165,
"体重": 56
},
{
"序号": 8,
"姓名": "吴十",
"年龄": 28,
"身高": 181,
"体重": 82
},
{
"序号": 9,
"姓名": "郑十一",
"年龄": 29,
"身高": 169,
"体重": 61
},
{
"序号": 10,
"姓名": "冯十二",
"年龄": 30,
"身高": 178,
"体重": 74
}
]
2、json转pandas 的DataFrame
# json转DataFrame
def json2df():
# 加载JSON文件,将其转换为DataFrame对象
df = pd.read_json('test.json', orient='records')
print(df)
# 输出DataFrame
# main function
if __name__ == '__main__':
#df2json() # df转json
json2df() # json转DataFrame
控制台输出:
序号 姓名 年龄 身高 体重
0 1 张三 21 170 60
1 2 李四 22 175 70
2 3 王五 23 165 55
3 4 赵六 24 180 80
4 5 钱七 25 173 63
5 6 孙八 26 176 66
6 7 周九 27 165 56
7 8 吴十 28 181 82
8 9 郑十一 29 169 61
9 10 冯十二 30 178 74