【发布时间】:2020-06-10 02:10:10
【问题描述】:
redis 版本 3.4.1 必须使用哈希,不能使用 str 或其他数据类型 数据:
{'_anno': {
'ctp': 'list',
'dt': [],
'ml': 0,
'na': 'apple',
'pos': -1,
'rel': '',
'st_var': '',
'tp': 'object'},
'_att': {'_cuser': 'apple card',
'_last_editor': 'apple card',
'_protext': 'authorize',
'_status': 'normal',
'_theme_id': 'apple card',
'_view': '12'},
}
我的代码
pool = redis.ConnectionPool(host=host, port=port)
conn = redis.StrictRedis(connection_pool=pool)
conn.hmset("aaaaaa",data)
引发错误
DataError:类型无效的输入:'dict'。转换为字节、字符串、 首先是 int 或 float。
现在代码
pool = redis.ConnectionPool(host=host, port=port)
conn = redis.StrictRedis(connection_pool=pool)
new_data={}
for key,value in data.items():
new_data[key]=json.dumps(value)
conn.hmset("aaaaaa",new_data)
有没有更pythonic的方式?
【问题讨论】:
-
使用 map() 而不是循环是更 Pythonic 的方式来做这些事情。见stackoverflow.com/questions/12229064/…。
标签: python-3.x redis redis-py