サラリーマンのすらすらIT日記

IT関連を中心とした日々を綴ります。
--/--/--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2013/11/26

PythonでEUC-JPのDBを扱うには、Python2にするとよい!

昨日、PythonでEUC-JPのDBを扱うとうまくいかないという記事を書きました。もうPythonは諦めてPHPでと思ったのですが、あまりに悔しいのでもう一粘りということで再チャレンジしました。py-Postgresqlがダメなのかもしれないということで、psycopg2をやってみました(これはサイコPG2と読むのだろうか?)

せっかくですから最新版をということで、2.5.1のソースをダウンロード。インストールはドキュメントにはsudo python setup.py installとありますが、Python3を使いたいのでsudo python3 setup.py installを実行。すんなりインストール完了。このあとサンプルコードのページを参考に、昨日の"たつさき"データを読み出すコードを書きました。結果は昨日と同じエラー。ああ、やはりPythonではダメなんだ、と落胆しました。

その後unicodeについて調べていくうちに、Python2とPython3とで文字コードの扱いが異なることを知りました。ひょっとするとPython2だと動くのでは?と思い、sudo python setup.py installとしてpsycopg2をPython2で動かしてみることに。結果はなんとOK!"たつさき"を含むデータを読むことができました。

どうやらPython3ではunicodeを使う前提で作られているためか、unicode以外のコードが来ると、扱えるものはunicodeとして扱うが、扱えないものはエラーにしてしまうのかもしれません。Python2にはそれがなく、来たものをそのまま扱うようです。

Python3がリリースされて久しいのに、Python2がいまだ多く使われているのは、こういったUTF-8以外のDBを扱うなどのケースが今も多く存在するのに対応するためかもしれません。

ともあれ、昨日までのしっくりこない気持ちは一掃しました。明日以降Python2で先に進めそうです。

ちなみにこちらによると、py-postgresqlではPython2は扱えずpsycopg2ではPython2もPython3も扱えるとのこと。これからはpsycopg2を使っていこうかな...

スポンサーサイト

コメント

コメントの投稿

  • URL
  • コメント
  • パスワード
  • 秘密
  • 管理者にだけ表示を許可する

トラックバック

トラックバックURL:http://sookibizviz.blog81.fc2.com/tb.php/1756-cf083b9e

■  カレンダー

08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

■  プロフィール

sookibizviz

Author:sookibizviz
仕事の内容やソフトの紹介を交えながら、日々の悪戦苦闘を綴っていきます。

■  最新記事

■  最新コメント

■  最新トラックバック

■  月別アーカイブ

■  カテゴリ

未分類 (64)
BizViz (24)
IT (1119)
計量 (76)
環境 (26)
数学 (181)
ニュース (46)
本 (187)
音楽 (113)
囲碁 (5)
将棋 (26)
ブログ (14)
日記 (19)

■  FC2カウンター

■  検索フォーム

■  RSSリンクの表示

■  QRコード

QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。