2018年07月29日

言語処理100本ノックでPython入門 #61 - RedisでKVSの検索

  

今日は、言語処理100本ノック 2015の第7章・問題61を解きます。


■ 問題
61. KVSの検索
60で構築したデータベースを用い,特定の(指定された)アーティストの活動場所を取得せよ.

■ 作成したPythonのコード
import redis

def enumKeys():
    r = redis.StrictRedis(host='localhost', port=6379, db=0)
    v = r.get('The Silhouettes').decode()
    print(v)
    v = r.get('The Wanderers').decode()
    print(v)
    v = r.get('桑田佳祐').decode()
    print(v)


def main():
    enumKeys()

if __name__ == '__main__':
    main()



■ ちょっと解説

r = redis.StrictRedis(host='localhost', port=6379, db=0)
v = r.get('桑田佳祐')
でキーに対応する値を得ることができます。

でも、この結果をデバッグで見て見たら、

b'Japan'

となっていて、はバイト列になっているみたいです。

redisの仕様なのかな?

そのため、バイト列から文字列に変換するには decodeメソッドを使ってみました。
    v = r.get('桑田佳祐').decode()
    print(v)


■ 結果
Netherlands
United States
Japan