楼主是一个半吊子,用 tx 的 API 生成了一段 ocr 编码,想用 base64,然后添加了 python 图片转 base64 的编码。
with open("1.jpg","rb") as f:
base64_data = base64.b64encode(f.read())
print(base64_data)
print(type(base64_data))
req = models.GeneralBasicOCRRequest()
params = '{"ImageBase64":"base64_data"}'
但是呢,这样子写直接提示我图片解析失败问 params 里的 base64_data 怎么变成 print(base64_data)里的 base64.
1
ClericPy 2020-05-13 23:21:54 +08:00
文档地址你也不发, 随便答一波吧:
1. params 是给 GET 请求拼凑 query 字符串用的, 这里命名如果没错那参数提交时候可能就错了, 就我所知我上传图片都是 POST 的 2. POST 请求时候的实体主体 data 都是要编码成 bytes 的, 所以记得 encode 一下 3. params = '{"ImageBase64":"base64_data"}' 这里要塞变量进去的, 所以要么 json.dumps({"ImageBase64":base64_data}) 要么就 params = '{"ImageBase64":"%s"}' % base64_data 总之别忘了 encode |
2
jerryliang OP @ClericPy 嗯,自己 print 了 params 。是一个 str 的类型,故使用字符串拼接的方式把它拼接了,然后就搞定了
with open("1.jpg","rb") as f: base64_data = base64.b64encode(f.read()) #print(base64_data) #print(type(base64_data)) req = models.GeneralBasicOCRRequest() a = "{\"ImageBase64\":\"" b = "\"}" params = a + base64_data + b |