如何序列化一个无法序列化的对象?

问题描述 投票:0回答:1

我知道这是一个常见问题,但我需要序列化一个表示无法序列化的对象。我正在使用外部库 pyarrow,并且我专门使用 ParquetDatasets 及其模式。我可以打印架构,结果如下:

stage_dataset: <pyarrow.parquet.ParquetDataset object at 0x7f8ddcc088d0>
stage_dataset_schema: <pyarrow._parquet.ParquetSchema object at 0x7f8ddc287dd0>
machine_id: BYTE_ARRAY String
wkstn_grp: BYTE_ARRAY String
charge_unit: BYTE_ARRAY String
workstation: BYTE_ARRAY String
wstndesc: BYTE_ARRAY String
current_part_no: BYTE_ARRAY String
current_oper_no: BYTE_ARRAY String
laborclass: BYTE_ARRAY String
jobclass: BYTE_ARRAY String
dml_operation: BYTE_ARRAY String

我需要将所有这些列和数据类型放入 JSON 或字典或其他内容中。我无法选择修改该类以使其可序列化,因为我不想创建该技术债务。我应该在 pyarrow 中使用允许 JSON 输出的不同类或方法吗?

感谢您的帮助。

json python-3.x pyarrow
1个回答
1
投票
  1. 您可以编写自己的序列化器将其传递给
    json.dumps(data={}, cls=Serializer)
  2. 您可以使用 https://marshmallow.readthedocs.io/en/stable/ 并创建自己的字段来正确序列化它们(甚至整个架构)

第二种变体更可取

© www.soinside.com 2019 - 2024. All rights reserved.