2017-09-25 9 views
1

に私はこのコードを持っていない:UnicodeEncodeErrorを: 'ASCII' コーデックは位置90-96で文字をエンコードすることはできません:序は、範囲(128)

url= 'https://yandex.ru/search/xml?user=uid-2h3232xfhboy&key=03.292922330523:6b4c80ghghghhghgdsfdsfds4c4b4a7872fb7d2bb04bfdgbb02b76c3d&query=' 
key = "абс" 
url = url + key 
     print(url) 
     xml = urllib.request.urlopen(url).read() 

をしかし、私はエラーました:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 90-96: ordinal not in range(128) 

私は何をしますか?

私はしようとしましたurl= url.encode("utf-8") しかし、助けてくれませんでした。このエラーを得た:私は何をしますか

AttributeError: 'bytes' object has no attribute 'timeout'

UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 20: ordinal not in range(128)

しかし、同じエラーを得た:ここで示唆したように url = u''.join((self.ya_url, key)).encode('utf-8')

AttributeError: 'bytes' object has no attribute 'timeout'

私はこれを実行しようとしましたか?

+0

これに非常に類似したいくつかのQ&Aを使いましたか? (関連するサイドバーを参照してください) – glibdud

+0

@glibdudはい、私はこれに非常に似ているいくつかのQ&Aを行ってきました(質問の最後の3段落を参照) – user2950593

+0

[この質問を見る](https://stackoverflow.com/questions)/24049151/attributeerror-bytes-object-has-no-attribute-timeout)を参照してください。 – glibdud

答えて

2

URLに非ASCII文字を使用することはできません。 keyの値を適切に引用する必要があります。

import urllib.parse 

url= 'https://yandex.ru/search/xml?user=uid-2h3232xfhboy&key=03.292922330523:6b4c80ghghghhghgdsfdsfds4c4b4a7872fb7d2bb04bfdgbb02b76c3d&query=' 
key = "абс" 
quoted = urllib.parse.quote(key) 
url = url + quoted 
関連する問題