所以,我有redis使用python - 令人兴奋!
我需要存储一个元组并在以后检索它/解析它.下面的构造不起作用,我认为因为返回的元组被引用 - 它的两端都有引号.
在我看来,引号表明它实际上不是一个元组,而是一个字符串.
那么有谁知道如何让redis实际返回一个工作元组?谢谢!
>>> tup1 = ('2011-04-05', 25.2390232323, 0.32093240923490, 25.239502352390)
>>> r.lpush('9999', tup1)
1L
>>> r.lpop('9999')
"('2011-04-05', 25.2390232323, 0.3209324092349, 25.23950235239)"
>>> v = r.lpop('9999')
>>> test=v[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud)
har*_*mkv 11
如果你想让元组回来,我推荐使用'pickle'.
>>> tup1 = ('2011-04-05', 25.2390232323, 0.32093240923490, 25.239502352390)
>>> import pickle
>>> r.lpush('9999', pickle.dumps(tup1))
1L
>>> v = pickle.loads(r.lpop('9999'))
>>> v
('2011-04-05', 25.2390232323, 0.3209324092349, 25.23950235239)
>>> type(v)
<type 'tuple'>
>>>
Run Code Online (Sandbox Code Playgroud)
您已经popped从中获取了元素v,并且您尝试检索的元素不再存在。
尝试这个:
>>> tup1 = ('2011-04-05', 25.2390232323, 0.32093240923490, 25.239502352390)
>>> r.lpush('9999', tup1)
>>> v = r.lpop('9999')
>>> test = eval(v)[0]
Run Code Online (Sandbox Code Playgroud)
由于返回类型是字符串,因此需要eval评估类型
| 归档时间: |
|
| 查看次数: |
4512 次 |
| 最近记录: |