[解決済み] 複雑なオブジェクトをredisに保存する方法 (redis-pyを使用)
2023-07-21 21:49:10
質問
hmset関数は各フィールドの値を設定することができますが、値自体が複雑な構造のオブジェクトである場合、hgetから返される値はシリアライズされた文字列であり、元のオブジェクトではないことに気づきました
例
images= [{'type':'big', 'url':'....'},
{'type':'big', 'url':'....'},
{'type':'big', 'url':'....'}]
redis = Redis()
redis.hset('photo:1', 'images', images)
i = redis.hget('photo:1', 'images')
print type(i)
iの型は文字列で、pythonのオブジェクトではありません。各フィールドを手動でパースする以外に、この問題を解決する方法はありますか?
どのように解決するのですか?
Redisではネストした構造を作成することはできません。つまり、(例えば)ネイティブRedisリストをネイティブRedisハッシュマップの中に格納することはできないのです。
本当にネストされた構造が必要な場合は、代わりにJSON-blob(または同様のもの)を保存するとよいでしょう。別のオプションは、マップキーの値として別のredisオブジェクトへのquot;id"/キーを格納することですが、これは完全なオブジェクトを取得するためにサーバーへの複数の呼び出しを必要とします。
関連
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Pythonの検索パスを他のソースに展開する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pickleかjsonか?
-
[解決済み] redis-py : StrictRedis()とRedis()の違いって何?
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] CSVデータを処理する際、1行目のデータを無視する方法を教えてください。
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?