【发布时间】:2015-04-15 04:23:57
【问题描述】:
我目前正在为我自己的 3d 打印机使用 redis 设计一个自动 FIFO 队列,我是 python 脚本和 redis 的新手。感谢您提出任何更好的想法。
我在创建一个 python 脚本来检查一个键值是否可用时遇到了麻烦。
目前我的python脚本是
import redis
import os
import time
r = redis.StrictRedis(host='172.16.114.54', port=6379, db=0)
if r.lrange('stlfile',0 ,0) == None:
print 'there is no key'
else:
print r.lrange('stlfile',0 ,0)
输出:
root@user:~/scripts# python autoslice.py
['172.16.114.162/registered/uploads/teemo.stl']
虽然我的 redis 有这些值
172.16.114.54:6379> lrange stlfile 0 -1
1) "172.16.114.162/registered/uploads/teemo.stl"
2) "172.16.114.162/registered/uploads/hunter_knife.stl"
我目前可以做一个 r.lrange('stlfile', 0,0) 并且我的第一个键值将输出。
第一个问题:我如何执行 python 脚本来检查是否存在值或出现“nil”?我应该做一个字符串检查吗?
第二个问题:我的值 r.lrange('stlfile', 0,0) 出现了,这是我想要的,但没有 ['xxx'] (引号),我该如何删除他们自动? (只留下xxx值)
我曾尝试使用此方法删除我的引号,但无济于事 python How can I strip first and last double quotes
string = string[1:-1]
>>>r = redis.StrictRedis(host='172.16.114.54', port=6379, db=0)
>>>string = r.lrange ('stlfile', 0, 0)
>>>x = string[1:-1]
>>>print x
[]
不太清楚为什么我的输出是 [] 而不是不带引号的字符串
【问题讨论】: