我使用POST方法自动登录我的帐户,我想做点什么。
现在我想检查字符串خطا
是否不在登录页面打印ok
。
但它不起作用。为什么呢?
post_data = {'email':email, 'password':password}
post_response = requests.post(url='http://test.come/login', data=post_data)
if post_response.text.find(u'\xd8\xae\xd8\xb7\xd8\xa7') == -1:
print 'OK'
答案 0 :(得分:2)
您正在尝试将UTF-8字节放入unicode字符串中。从UTF-8解码或测试实际文本:
>>> '\xd8\xae\xd8\xb7\xd8\xa7'.decode('utf8')
u'\u062e\u0637\u0627'
>>> print '\xd8\xae\xd8\xb7\xd8\xa7'.decode('utf8')
خطا
所以使用:
if u'\u062e\u0637\u0627' not in post_response.text:
或如果您有declared a suitable source encoding:
if u'خطا' not in post_response.text:
或
if '\xd8\xae\xd8\xb7\xd8\xa7'.decode('utf8') not in post_response.text:
或者,如果原始响应也以UTF-8编码,甚至:
if '\xd8\xae\xd8\xb7\xd8\xa7' not in post_response.content:
您可能想要了解Python和Unicode。我建议: