我一直在使用请求包的 api 调用突然返回以下错误:“UnicodeError: encoding with 'idna' codec failed (UnicodeError: label empty or too long)”
我不知道如何解决这个问题。我的代码如下所示,在此示例中伪造了某些凭据:
api_key= '123abc'
password = '12345' #password that only idiots use on their luggage
shop_name = 'myshopname'
shop_url = 'https://%s:%s@%s.myecommercesite.com/admin/customers/1234567.json' %(api_key, password, shop_name)
a = requests.get(shop_url)
Run Code Online (Sandbox Code Playgroud)
当我打印 shop_url 并将其粘贴到我的浏览器时,我得到了我期望在 json 中返回的数据。但是当我运行这个请求时,我收到了 idna 编解码器错误。
这曾经可以正常工作,但显然某处发生了变化,我不确定是电子商务网站还是请求或导致此问题的原因。
有没有人遇到过这种类型的错误或知道如何修复它?
如果我打印网址,它看起来像:https://123abc:12345@myshopname.myecommercesite.com/admin/customers/1234567.json
edit2:忘记在我的代码示例中包含 %(api_key, password, shop_name) 编辑:下面的整个错误消息:
UnicodeError Traceback (most recent call last)
~/anaconda3/lib/python3.6/encodings/idna.py in encode(self, input, errors)
164 if not (0 < len(label) < 64):
--> 165 raise UnicodeError("label empty or …Run Code Online (Sandbox Code Playgroud) 我在redshift列中有一个字段,如下所示:
abcd1234df-TEXT_I-WANT
前10位数字中的字符和数字可以是字母或数字。
如果我使用捕获组正则表达式,则会使用写得不好的表达式,如(\w\w\w\w\w\w\w\w\w\w\W)(.*)grap 2nd group
但是我在redshift中实现时遇到了麻烦,所以不确定如何在第一个连字符后仅获取内容