python - Redis 从 csv 发布。没有错误但没有收到数据

标签 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 = 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)

Publishset 的含义完全不同,这更有可能是您想要的。

编辑

(感谢您接受,我只是对其进行编辑以使其成为您问题的实际解决方案)

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/

相关文章:

php - 为什么我的 Predis 客户端的 PHPUnit 模拟不符合我的预期?

python - Distutils、旧版 rpm 和自定义规范文件

python - 计算100个n维点的欧式范数?

python - 使用剪贴板将 excel 数据复制到 IPython 中的 python 列表中?

java - Java和MySQL数据库中的文件读取

redis.clients.jedis.exceptions.JedisDataException : Please close pipeline or multi block before calling this method

javascript - 在redis中检索单个哈希表元素

Python - 在条件匹配时替换前 2 行

bash - 如何使用 awk 按列合并两个文件?

python - CSV writer 切断一些写入