>>> def qrcodegenerate(nbr):
... res = requests.get("https://chart.googleapis.com/chart?cht=qr&chs=300x330&choe=UTF-8&chl="+str(nbr))
... print(res.url)
... data =res.text
... with open("C:\wamp\www\Paymentapi\qrcode\qr_"+str(nbr)+'.png','w',encoding="utf-8") as f:
... f.write(data)
...
>>> qrcodegenerate(5697)
这里我调用API来生成QR码,我想保存到PNG文件中。
正在生成QR码,但未正确保存。
答案 0 :(得分:3)
PNG文件包含二进制数据,而不是UTF-8文本。
您需要做的是:
使用res.content
(二进制)代替res.text
(文字)。
Open the file采用二进制模式(wb
)而非文字模式(w
),未指定编码。
生成的代码应如下所示:
def qrcodegenerate(nbr):
res = requests.get('https://chart.googleapis.com/chart?cht=qr&chs=300x330&choe=UTF-8&chl=' + str(nbr))
print(res.url)
data = res.content
with open('...', 'wb') as f:
f.write(data)