ケースとしてはレアな気がしますが、MySQLのSELECT 〜 INTO OUTFILEで出力したCSVに対して、処理をしたい時があります。僕の場合はpythonでやるわけですが、MySQLが出力するCSVの形式がpythonデフォルトの物と違うようでハマったのでメモしておきます。
‘python’ カテゴリーのアーカイブ
MySQLが出力するCSVファイルをPythonで読みたい件
2010年3月8日 月曜日Pythonで日本語を含んだリストと辞書をpretty printしたい件
2010年3月5日 金曜日Pythonでコード書いてると、1回は残念だなぁと思うポイントとして表題の件があると思います。具体的には以下です。
# リストも辞書も出力がお世辞にも良いとは言えない。。 >>> print ['あ', 'い', 'う'] ['\xe3\x81\x82', '\xe3\x81\x84', '\xe3\x81\x86'] >>> print {'title':'ねじまき鳥', 'author':'村上春樹'} {'author': '\xe6\x9d\x91\xe4\xb8\x8a\xe6\x98\xa5\xe6\xa8\xb9', 'title': '\xe3\x81\xad\xe3\x81\x98\xe3\x81\xbe\xe3\x81\x8d\xe9\xb3\xa5'}
日本語がバイト表現な上、全要素が1行で表示されています。これではちょっとprintデバッグするにも萎えますよね。複雑な辞書を出力した場合なんかは、出力された文字列の整形にかなりのパワーを裂かれること請け合いです。
Pythonで辞書のキーに正規表現を使いたいという話
2010年2月12日 金曜日配列や連想配列をディスパッチテーブルとして利用していると、キーに正規表現を使いたくなる事があります。perlだと既にRegexp::Assembleというモジュールを使う方法が書かれていますが、僕はpythonで書きたい訳です。
BeautifulSoupでスクレイピングのまとめ
2010年2月10日 水曜日何度かBeautifulSoupについては書いているのですが、未だに使い方が覚えられずにイライラします。仕方が無いのでまとめて置く事にしました。BeautifulSoupはHTMLから情報を取得するだけ無く、HTMLの編集もできますが、ここではスクレイピング用途のみに絞っています。
XML::Simpleっぽいpythonモジュール書いた
2010年2月4日 木曜日Yahooの形態素解析APIを使おうと思ったら、XML形式しか対応してなかったので、Perlで言うところのXML::Simpleなpythonモジュールを探したのですが見つかりませんでした。XML::SimpleはXMLとPerlのハッシュ(と配列の混合オブジェクト)を相互に変換するモジュールで、ちょっとしたXMLの処理をするには非常に便利なので残念です。普通にDOMを弄っても良かったのですが、Python クックブックにベースとなるコードを見つけた事もあり、勢いでXML::Simpleを(中途半端に)移植してみました。
Pythonで動的にクラスをロードしたい件
2010年1月7日 木曜日app-engine-patchを使っていて、settings.pyに記述されているAUTH_USER_MODELクラスを動的にロードしたかったんですが、簡単に方法が解らなかったのでメモしておきます。要はクラス名が文字列で与えられている場合に、そのクラスにアクセスしたいという話です。
pythonでtwitterのStreaming APIを使ってみた
2010年1月2日 土曜日twitterのように更新頻度が高いサービスのAPIはポーリングとあまり相性がよくありません。どうせtwitter API使うプログラム書くなら、リアルタイムなイベントベースっぽいAPIの方が色々と都合が良いので調べてみました。なんとなくXMPPに対応してる気がしてたんですが、実際はStreaming APIという独自のインターフェースが用意されていました。
tweepyでtwitterの3-legged OAuth認証を試してみた(GoogleAppEngine)
2009年12月28日 月曜日そろそろGAE上でユーザ登録が必要なサービスを作りたいのですが、ユーザ登録周りの実装はやりたくないので、twitterのOAuthを代わりに使ってみる事にしました。twitterのAPIを叩くのにこれまではtwythonを使っていたのですが,OAuthに対応していなかったので、今回はtweepyを使います。以前2-legged OAuthを試してみましたが、今回は3-legged OAuthです。
webappでcookieを使う(GoogleAppEngine)
2009年12月28日 月曜日GoogleAppEngineで何かを作る時はapp-engine-patchを使っているのですが、ちょっとした実験等をする時はやっぱりwebappが手軽です。今回はセッションの実験をしたかったのですが、webappにはセッションを扱う仕組みがないので、自前でCookie周りの処理をしようと思ったら、Cookieを扱うライブラリも標準ではありませんでした。いやでも流石にCookieくらいはだれか書いてるだろうという事で調べてみたら、GoogleAppEngineのオンラインCookbookに記事が見つかりました。
COOKPADのレシピのカロリーを測定するWebサービス(FoodMeter)作った
2009年12月26日 土曜日最近良く自炊をしていてCOOKPADが欠かせないのですが、各レシピのカロリー等が見れたらもっと嬉しいだろうという事で、COOKPADに掲載されているレシピの栄養成分を計測するWEBサービスを作りました。食品を測定するので、FoodMeterという名前にしました。まぁそのまんまですね。環境はGoogleAppEngine+app-engine-patchです。
FoodMeterへアクセス!
