求助腾讯云 API 编写

2020-05-13 21:44:51 +08:00
 jerryliang

楼主是一个半吊子,用 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.

1259 次点击
所在节点    Python
2 条回复
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
jerryliang
2020-05-14 11:50:31 +08:00
@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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/671392

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX