gpt4 book ai didi

python - 如何转换文件以通过 JSON 发送(到 Odoo Controller )

转载 作者:太空宇宙 更新时间:2023-11-04 02:10:07 25 4
gpt4 key购买 nike

我有一个为特定模型创建新记录的 Controller 。
这个模型包含一个fields.Binary

这是 Controller 的样子:

@http.route('/mymodel/create', type='json', method='POST', auth='user')
def create_record(self, **kwargs):
"""
@params:
'field1': string
'field2': int
'binaryField': binary
"""
values = {'my_model_field_1': kwargs.get('field1'),
'my_model_field_2': kwargs.get('field2'),
'my_model_binary_field': kwargs.get('binaryField')}
request.env['my_model'].create(values)

我的问题是我应该如何从连接到服务器的远程应用程序发送我的文件?

我可能不得不将其作为字符串发送,因为它是以 json 格式发送的。我必须如何修改我的 Controller 才能正确接收它?
我将很感激将文件转换为可以通过 Json 发送的字符串的代码示例。我还必须从任何语言转换它,因为我正在构建 API,二进制字段将识别的标准是什么?

最佳答案

正如我在评论中所说,您可能需要以二进制形式读取文件内容,使用 base64 对其进行编码,然后对编码字节进行解码以将其放入 JSON。

完成此任务的 Python3 代码段:

import base64
import json

data = {}

# read raw file bytes
with open('filename','rb') as myfile:
file_bytes = myfile.read()

# encode, decode and put it in the JSON
data['file'] = base64.encodebytes(file_bytes).decode('ascii')

# optionally serialize the JSON
serialized_json = json.dumps(data)

关于python - 如何转换文件以通过 JSON 发送(到 Odoo Controller ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53878539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com