binasciiでバイナリコードを16進ダンプする
pyapnsのコードを読んでてでてきたのでメモ
pyapnsはapple push notification serviceとのやりとりを行うライブラリです
apnsサーバーとはバイナリで値をやりとりしますが、ログに出力するのにbinasciiを使って16進ダンプしてます。
たとえばfeedbackサービスで受信した値をログ出力する処理はこんな感じです
def rawDataReceived(self, data): log.msg('feedbackHandler rawDataReceived %s' % binascii.hexlify(data)) self.io.write(data)
binasciiモジュールのhexlify関数を使います。
出力される文字列は以下のような感じになります。(tokenの部分は適当に変えてます)
50b45f090020abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890
バイナリに戻すにはbinascii.unhexlifyを使います。
binary_tuples = binascii.unhexlify("50b45f090020abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890")