下面是我的脚本,它将位于一台服务器上的 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 = 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.set(key, doc)
而不是 client.publish(key, doc)
。
Publish与 set 的含义完全不同,这更有可能是您想要的。
编辑
(感谢您接受,我只是对其进行编辑以使其成为您问题的实际解决方案)
client.publish
的第一个参数是您要发布到的 channel 。在您的情况下,听起来您正在发布到“csv_filename:first_entry_of_row,而您真的只想发布到
csv_filename”。
尝试将 key = "xyzxyz:%s"% (row[0],)
行更改为 key = "xyzxyz"
。
关于python - Redis 从 csv 发布。没有错误但没有收到数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23277387/