pythonのrequestsライブラリの更新に追従
http://d.hatena.ne.jp/yatt/20121017/1350480131
requestsについて書いた記事ですが、既にAPIが変わってしまっていたので、
同じ動作をするコードを書きました。
対象はrequests 2.6.0です。
はてなダイアリーにログイン
変わりません。
#! /usr/bin/python2.7 import requests s = requests.session() params = { 'name': 'your account name', 'password': 'your password', } r = s.post('https://www.hatena.ne.jp/login', params=params) print r.text
OAuth認証
OAuthの処理が、requests_oauthlibという別ライブラリに切り出されました。
requestsとは別途、インストールしておきましょう。
$ pip install requests_oauthlib
また、レスポンス文字列をjsonにデシリアライズする処理が
プロパティ.jsonからメソッド.json()に変わりました。
http://docs.python-requests.org/en/latest/api/?highlight=response#requests.Response.json
#! /usr/bin/python2.7 import requests from requests_oauthlib import OAuth1 auth = OAuth1( 'consumer key', 'consumer secret', 'access token', 'access secret', ) url = 'https://api.twitter.com/1.1/statuses/home_timeline.json' r = requests.get(url, auth=auth) print r.json()
OAuth認証してストリーム処理
UserStreamなどのストリームを扱う場合の引数の渡し方が変わりました。prefech=Falseからstream=Trueになっています。
http://docs.python-requests.org/en/latest/user/advanced/?highlight=stream#body-content-workflow
#! /usr/bin/python2.7 import requests from requests_oauthlib import OAuth1 auth = OAuth1( 'consumer key', 'consumer secret', 'access token', 'access secret', ) import json url = 'https://userstream.twitter.com/2/user.json' r = requests.get(url, auth=auth, stream=True) for line in r.iter_lines(): if line == '': continue print json.loads(line)
grequestsも変わらず使えるようです。なんかちょっと遅い気はしますけど。
ANAのシーズンチャート2015国内線
シーズンチャート
http://www.ana.co.jp/amc/reference/tukau/kokunai_6.html#a01
ANAのシーズンチャート、期間がテキストでしか示されなくてよく分からない・・・。
年間カレンダー的なものを探しても見つけられなかったので自分でカレンダーを作って整理しました。
続きを読むPython2.7でGMailから日本語メールを送信する
以前使っていたスクリプトを紛失してしまったので、ざっと書き直してこっちにもメモ。
#! /usr/bin/python2.7 # coding: utf-8 """ stdinの内容をGMailで 自分自身に送る """ import smtplib host, port = 'smtp.gmail.com', 465 username, password = 'XXXXXXXXXXXXXXXXXXXXX@gmail.com', 'YYYYYYYYYYYYYYYYYYYYY' import sys import os content = sys.stdin.read() # unicodization for enc in ['utf-8', 'cp932', 'euc-jp']: try: content = unicode(content, enc) except: pass subject = content.splitlines()[0].strip() body = content # build mail message message = u"""From: %s To: %s Subject: %s %s """ % (username, username, subject, body) # normalize newline character to CRLF message = message.replace('\r\n', '\n') message = message.replace('\r', '\n') message = message.replace('\n', '\r\n') message = message.encode('utf-8') smtp = smtplib.SMTP_SSL(host, port) smtp.ehlo() smtp.login(username, password) smtp.sendmail(username, username, message) smtp.quit()
Pythonのdict内包表記でキー衝突が起きたらどうなるか
- 後勝ち?
- 不定?
- 重複した値はリストになる?
検証
# 1. 重複しないケース print {i:i for i in range(10)} # => {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9} # 2. 重複するケース。昇順 print {i+(10-i):i for i in range(10)} # => {10: 9} # 3. 重複するケース。降順 print {i+(10-i):i for i in range(10,-1,-1)} # => {10: 0}
Cherry青軸のテンキーがなかなか見つからない件
自宅のキーボード環境をグレードアップするために、Cherry青軸のテンキーを手にいれようと探してみたものの、どうやら青軸のテンキーというのは珍しい存在のようで。
検索ワードをこんな感じにしても、青軸のテンキーがなかなか見つからない。
- テンキー 青軸 -レス
- テンキー 青軸 -レス -"テンキーレス"
- テンキー -レス -"テンキーレス" -Majestouch -109 -106 -108 -ゲーミング
FILCOから茶軸のテンキーなら出てるんですけどね。これの青軸があればいいのに。
FILCO Majestouch TenKeyPad USBテンキーパッド独CherryMX茶軸スイッチ ブラック FKB22MB
- 出版社/メーカー: ダイヤテック
- 発売日: 2007/01/16
- メディア: Personal Computers
- 購入: 5人 クリック: 16回
- この商品を含むブログ (1件) を見る