Python Redis从csv发布。没有错误,但没有收到数据
下面是我的脚本,它将一台服务器上的csv数据插入另一台服务器上的Redis。如果成功的话 我没有收到错误,但我也没有显示在redis端接收到的任何数据。所以我不确定哪个更糟Python Redis从csv发布。没有错误,但没有收到数据,python,csv,redis,publish,Python,Csv,Redis,Publish,下面是我的脚本,它将一台服务器上的csv数据插入另一台服务器上的Redis。如果成功的话 我没有收到错误,但我也没有显示在redis端接收到的任何数据。所以我不确定哪个更糟 #!/opt/python/bin/python import csv import redis from redis import StrictRedis reader = csv.reader(open("/opt/xyzxyz.csv")) header = reader.next() client = re
#!/opt/python/bin/python
import csv
import redis
from redis import StrictRedis
reader = csv.reader(open("/opt/xyzxyz.csv"))
header = reader.next()
client = redis.StrictRedis(host='XXXXXXXXX.XX.XXX.X.XXX', port=6379, db=0)
for row in reader:
key = "xyzxyz:%s" % (row[0], )
doc = dict(zip(header, row))
client.publish(key, doc)
对我在上述过程中遗漏了什么有什么想法吗?或者如果我在redis方面没有做什么
这是我第一次使用Redis,所以对我来说有点陌生。您可能想使用
客户端。设置(键,文档)
而不是客户端。发布(键,文档)
与完全不同的意思,更可能是你想要的
编辑
(感谢您的接受,我正在编辑此内容以使其成为您问题的实际解决方案)
client.publish
的第一个参数是要发布到的频道。在您的情况下,听起来像是在发布到“csv\u文件名:行的第一个条目”,而实际上您只想发布到csv\u文件名”
尝试将行key=“xyzxyz:%s”%(行[0],)
更改为仅key=“xyzxyz”
注意以下两件事:
检查redis.conf文件中的bind变量。您可以对其进行注释,也可以使用空格分隔的方式添加您的ip地址。要么绑定您的ip,要么就把那一行注释掉
使用client.set函数代替client.push
您确定publish
是您想要的吗?听起来你想设置?我的Redis对手告诉我需要在主题(我的csv文件名)下发布。也许这就是我困惑的根源。如果我真的想发布,我需要修改吗?现在,您正在“csv\u文件名:行的第一个\u字段”主题下发布每一行。如果您想以csv名称发布,您应该更改key='xyzxyz'
I的分配。我完全使用了教程中的基本脚本,并根据我的用例对其进行了编辑。谢谢