PyYAMLモジュールを使ってPythonからYAMLを読む
最初easy_installでPyYAMLをインストールしようとしたが、libyamlがないというエラーになりインストールできなかったため、上記サイトからtar.gzをダウンロード・展開して
sudo python setup.py install
でインストール。(Pythonのバージョンに注意)
email: mailaddress password: password group: progdhoge.tumblr.com
terminalで
$ python >>> import yaml >>> str = open('account.yaml').read() >>> yaml.load(str) {'password': 'password', 'group': 'progdhoge.tumblr.com', 'email': 'mailaddress'}
yaml.load()の引数にstr型を渡すと、dict型が返ってくる。
さっきのエントリ(PythonでTumblrに画像を投稿するテスト - progd)のスクリプトはコード中にメールアドレス・パスワードを書いていたので、アカウント情報をYAMLファイルで設定できるようにした。
tumblr.py
#! /usr/bin/env python # coding: utf-8 import urllib import yaml TUMBLR_URL = 'http://www.tumblr.com/api/write' def postImg(url, caption='', link=''): pd = yaml.load(open('account.yaml').read().decode('utf-8')) pd['type'] = 'photo' pd['source'] = url pd['caption'] = caption pd['click-through-url'] = link params = urllib.urlencode(pd) up = urllib.urlopen(TUMBLR_URL, params) print up.read()