Python 从Google数据存储打印几个二进制数据字段?

Python 从Google数据存储打印几个二进制数据字段?,python,json,google-app-engine,binary,Python,Json,Google App Engine,Binary,我正在使用GoogleAppEngine和python进行web服务。我的web服务中的一些模型(表)中有几个二进制数据字段,我想将这些数据呈现给请求它的计算机,同时显示所有字段。现在,问题是我不知道如何写出来,让另一台计算机知道第一个数据从哪里结束,另一台计算机从哪里开始。我一直在使用JSON处理所有非二进制数据,但afaik JSON不适用于二进制数据。那你是怎么解决的呢 当然,您可以分离数据并将其放在自己的模型中,然后将其引用回某个元数据模型。这将允许您创建一个只打印其中一个项目的一个数据

我正在使用GoogleAppEngine和python进行web服务。我的web服务中的一些模型(表)中有几个二进制数据字段,我想将这些数据呈现给请求它的计算机,同时显示所有字段。现在,问题是我不知道如何写出来,让另一台计算机知道第一个数据从哪里结束,另一台计算机从哪里开始。我一直在使用JSON处理所有非二进制数据,但afaik JSON不适用于二进制数据。那你是怎么解决的呢

当然,您可以分离数据并将其放在自己的模型中,然后将其引用回某个元数据模型。这将允许您创建一个只打印其中一个项目的一个数据字段的页面,但这在服务器和客户端实现方面都是非常困难的

另一个解决方案是放入某种分隔符,然后在该分隔符上拆分数据。我想这是可行的,你就是这样做的,但这不是一种标准化的方法吗?有我可以使用的图书馆吗

简言之,我希望能够做到以下几点:

binaryDataField1: data data data ...
binaryDataField2: data data data ...

etc

利用json投资的一个解决方案是简单地将二进制数据转换为json可以支持的内容。例如,编码可能适合您。您可以像对待json中的普通字符串一样对待BAse64编码器的输出。看起来python支持Base64,尽管我只在app engine上使用java,所以我不能保证链接库在沙箱中是否工作。

几个简单的选项:

  • 对数据进行编码——这意味着您仍然可以使用JSON
  • 使用
  • 在每个字段前面加上长度前缀-可以是4字节或8字节的整数,也可以是数字字符串