You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyArrow读取ORC/PARQUET文件后,嵌套数组无法正确序列化为JSON的问题求助

使用PyArrow读取ORC/PARQUET文件后,嵌套数组无法正确序列化为JSON的问题求助

各位好,我最近在处理ORC和PARQUET格式的数据转换时遇到了麻烦,想请大家帮忙出出主意。

我现在的流程是用PyArrow读取ORC或PARQUET文件,然后转换成Pandas DataFrame,最终目标是把包含嵌套数组的数据转成标准的JSON格式。下面是我读取数据的代码片段:

if storage_type == "orc":
    data = orc.ORCFile(file_name).read().to_pandas()
elif storage_type == "parq":
    data = parquet.read_table(file_name).to_pandas()

但当我用json.dumps()做序列化时,发现嵌套数组根本没有被正确编码成JSON格式,而是变成了字符串形式。

我想要实现的目标JSON格式是这样的(里面包含contacts、phone、hours等多个嵌套数组):

{
    "XXXX_code": "XXXX",
    "website": "https://www.randomwebsite.com",
    "brand": "XXXXXX",
    "contacts": [
        {
            "XXXXXXcode": "XXXXXX",
            "phone_number": "XXXXXX5054",
            "firstname": "XXXXXX",
            "code": "01016",
            "lastname": "XXXXXX",
            "title": "XXXXXX New York)",
            "source": "XXXXXX_Apr2016.xlsx",
            "source_date": "2016-04-19",
            "type": "FOM",
            "email": "scott.vanarsdale@XXXXXX"
        },
        {
            "XXXXXXcode": "1031",
            "phone_number": "609-XXXXXX",
            "firstname": "XXXXXX",
            "code": "01016",
            "lastname": "XXXXXX",
            "title": "Sr. DOM XXXXXX",
            "source": "XXXXXX.xlsx",
            "source_date": "2016-04-19",
            "type": "DOM",
            "email": "craig.salera@XXXXXX"
        }
    ],
    "lon": "-70.XXXXXX",
    "phone": [
        {
            "phone_number": "207-XXXXXX",
            "source": "XXXXXXWebServices",
            "type": "XXXXXX",
            "source_date": "2022-12-12",
            "code": "XXXXXX"
        }
    ],
    "email": "",
    "hours": [
        {
            "monday": "",
            "code": "01016",
            "tuesday": "",
            "friday": "",
            "wednesday": "",
            "thursday": "",
            "hours": "Monday-Friday: 09:00-19:00;Saturday: 09:00-18:00;Sunday: Closed",
            "source": "CoreXXXXXX",
            "sunday": "",
            "source_date": "2022-12-12",
            "type": "sales",
            "saturday": ""
        },
        {
            "monday": "",
            "code": "XXXXXX",
            "tuesday": "",
            "friday": "",
            "wednesday": "",
            "thursday": "",
            "hours": "Monday-Thursday: 07:30-18:00;Friday: 07:30-17:30;Saturday: 08:00-16:00;Sunday: Closed",
            "source": "CoreXXXXXX",
            "sunday": "",
            "source_date": "2022-12-12",
            "type": "service",
            "saturday": ""
        }
    ],
    "source": "BIRT"
}

而我目前用这段代码做转换:

res1 = json.dumps([{K:V for K,V in tup} for tup in data['json']])

得到的结果却是这样的,所有嵌套数组都变成了带方括号的字符串,完全不是标准的JSON数组结构:

{
    "hours": "[{saturday=09:00 AM - 07:00 PM}]",
    "website": "https://www.randomwebsite.com",
    "address": "[{zip=XXXXX, code=3903}]",
    "code": "XXXX",
    "lon": "-117.79XXXXX",
    "source": "XXXX",
    "phone": "[{phone_number=714-XXX-XXXX}, {phone_number=714-XXX-XXXX}]",
    "XXX_code": "XXXX",
    "geography": "[{area=LAN}]",
    "name": "TUSTIN",
    "source_contact": "XZZZ",
    "programs": "[{code=12334}]",
    "id": "",
    "employees": "[{firstname=Ramon}]",
    "fax": "714-XXXXXX",
    "brand": "XXXXX",
    "lat": "33.7XXXXXX",
    "email": null,
    "contacts": "[{Firstname=XXXXX]",
    "source_date": "2023-04-29"
}

有没有大佬能指点一下,怎么才能让这些嵌套数组正确序列化为标准的JSON格式呢?

备注:内容来源于stack exchange,提问作者Anuj Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 15:53:10