python pandas的DataFrame和json互相转换

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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值