首页 > 解决方案 > 在 C# 中处理 Python pickle 字节对象

问题描述

在 C# 应用程序中使用 Pythonnet:

Python 返回一个bytes ({<class 'bytes'>})作为操作结果的对象pickle.dumps

在 C# 中处理此对象的最佳方法是什么,以持久保存 blob 存储并重新水化bytes对象以在稍后阶段传回 Python?

标签: c#python.net

解决方案


假设您可以访问等式的 Python 方面,处理此类问题的最简单方法是以某种相互理解的格式序列化对象。

在这种情况下,一种想法是将字节序列化为 base64(UTF-8 或 -16 等 unicode 可能会遇到编码问题,具体取决于字节字符串的内容)。然后,您可以将该 base64 字节转换为 UTF-8,以便在程序之间进行通信。

这看起来像(例如):

base64.b64encode(pickle.dumps("Some data goes here")).decode("utf-8")

推荐阅读