‘unicodeescape’ codec can’t decode bytes

前提

プライベートでPythonを使った開発を始めました。
Seleniumでブラウザを操作しようとすると早速エラーが。。。

エラーの詳細

エラーは以下のようになっていました。

SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape

これだけ見ても何のことか分かりませんね。

コード

エラーの出たコードはこちら。

from selenium import webdriver

url = "https://www.google.co.jp/"
driver_path = "C:\Users\hogehoge\chromedriver.exe"
driver = webdriver.Chrome(driver_path)
driver.get(url)

原因

原因は4行目の文字列です。
“C:\Users\hogehoge\chromedriver.exe”と指定していますが、「\U」がエスケープシーケンスとして認識されてしまっていました。
「\U」の後ろは32ビットの16進数値と決まっています。
ところが、「\U」に続く文字列が「sers/hogehoge」となっており、「sers/hogehoge」は16進数ではありません。
そのため、「何かおかしいですよ!」と教えてくれていました。

修正方法

じゃあどう修正すればよいかというと、文字列の前にrをつければよいです。
driver_path = r”C:\Users\hogehoge\chromedriver.exe”

これで「\U」がエスケープシーケンスとして認識されなくなるため、
driver_pathには”C:\Users\hogehoge\chromedriver.exe”が正しく代入されます。

最後に & 関連書籍

以上になります。

分かりにくいところや、「もっとこうしてほしい」などのご意見がありましたら、ツイッターから連絡いただけると幸いです。
質問に関しても、お気軽にお問い合わせください。

他の記事ではスマホアプリの開発やインスタグラムをスクレイピングする方法なども紹介しています。

興味があれば見てみてください。

以下は関連書籍です。

コメント

タイトルとURLをコピーしました