正如您在帖子(Java)中所看到的:

getMFAResponseForSite - rendering array as a captcha image

和(C#)

Yodlee: Unable to convert image codes into captcha in getMFAResponseForSite(Captcha type) - C#

Yodlee API getMFAResponseForSite使用包含MFA表单的JSON进行回答。在Python中,我正在尝试以下解决方案,但没有结果:

import array
import base64

img_array = [66, 77, -98, -19, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40,...]
new_img_array = []

for x in img_array:
    new_img_array.append(abs(x))

img_byte_array = bytearray(new_img_array)
fh = open("path.jpg", "wb")
fh.write(img_byte_array)
fh.close()


我尝试直接转换字节数组,但是因为字节值必须在0-255之间,所以会引发错误

我希望有人知道如何解决这个问题

最佳答案

这里还有许多额外的步骤,以及未使用的导入。另外,对我而言,返回的yodlee图像数据是Windows bmp数据(不是jpg)。这是答案的实质:

with open('captcha.bmp', 'wb') as c:
    write(''.join(map(lambda x: chr(x % 256), img_array)))


或者,如链接文章中所建议:

with open('captcha.bmp', 'wb') as c:
    write(str(bytearray(map(lambda x: chr(x % 256), img_array))))


这直接在getMFAResponseForSite提供的fieldInfo.image数组上起作用。

关于python - Yodlee:无法将图像字节转换为getMFAResponseForSite中的验证码-Python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31861604/

10-12 04:33