私はアムステルダムのレストラン500軒のリストを取得しようとしています。しかし、私は次のエラーを取得する第三百八レストランの後:UnicodeEncodeError: 'ascii'コーデックは、位置6にu ' u2019'をエンコードできません:序数は範囲外です(128)
Traceback (most recent call last):
File "C:/Users/dtrinh/PycharmProjects/TripAdvisorData/LinkPull-HK.py", line 43, in <module>
writer.writerow(rest_array)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 6: ordinal not in range(128)
私はStackOverflowの上で見つかったいくつかのことを試してみましたが、何も今のよう作業していません。誰かが自分のコードを見て、偉大な解決策を見つけられるかどうかは疑問だった。
for item in soup2.findAll('div', attrs={'class', 'title'}):
if 'Cuisine' in item.text:
item.text.strip()
content = item.findNext('div', attrs=('class', 'content'))
cuisine_type = content.text.encode('utf8', 'ignore').strip().split(r'\xa0')
rest_array = [account_name, rest_address, postcode, phonenumber, cuisine_type]
#print rest_array
with open('ListingsPull-Amsterdam.csv', 'a') as file:
writer = csv.writer(file)
writer.writerow(rest_array)
break
'cuisine_type'は' .split'を使用しているためリストです(なぜ非分割スペースで分割しているのかわかりません...)。しかし、 '.writerow'に渡す行の内容は文字列または数字である必要があります。また、Python 2の 'csv'モジュールを使用する場合、[docs](https://docs.python.org/2/library/csv.html)に記載されているように、バイナリモードでCSVファイルを開くはずです。 。この記事が参考になるかもしれません:[Pragmatic Unicode](http://nedbatchelder.com/text/unipain.html)、SOベテランのNed Batchelderによって書かれました。 –