我在编写下面程序时
#python3
#导入需要的库
import urllib.request
import urllib.parse
import json
import time
import base64
#加载本地图片
image_path = '输入图片地址'
with open(image_path, 'rb') as f: # 以二进制读取本地图片
data = f.read()
encodestr = str(base64.b64encode(data),'utf-8') # base64编码图片
#设置请求头
headers={'Authorization':'APPCODE 申请到的个人APPCODE', # 填入个人APPCODE
'Content-Type': 'application/json; charset=UTF-8'# 定义接口格式
}
def posturl(url,data={}):
try:
params=json.dumps(dict).encode(encoding='UTF-8')
req = urllib.request.Request(url, params, headers)
r = urllib.request.urlopen(req)
html =r.read()
r.close();
return html.decode("utf8")
except urllib.error.HTTPError as e:
print(e.code)
print(e.read().decode("utf8"))
time.sleep(1)
if __name__=="__main__":
url_request="https://gjbsb.market.alicloudapi.com/ocrservice/advanced" # 对应官网API的URL
dict = {'img': encodestr}
html = posturl(url_request, data=dict)
jos = json.loads(html.encode("utf-8").decode("utf-8")) # str转json对象,<class 'dict'>
result = jos['content'] # 获得参数结果
print('识别的结果:',result)
出现下面的结果
你这个 https://gjbsb.market.alicloudapi.com/ocrservice/advanced 地址无法访问
r = urllib.request.urlopen(req)出错
urllib.error.HTTPError: HTTP Error 400:
posturl()函数中有错误 执行except语句块
return html.decode("utf8")没有执行到, posturl()函数返回了None
你用浏览器访问下https://gjbsb.market.alicloudapi.com/ocrservice/advanced 地址看看能不能访问
另外
return html.decode("utf8") utf8之间少了-号
改成
return html.decode("utf-8")
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
填APPCODE的时候前面的“APPCODE ”要保留