python 如何在Redis中导入CSV

cdmah0mi  于 2022-12-21  发布在  Python
关注(0)|答案(1)|浏览(247)

下面是如何将CSV文件导入Redis数据库
应该这样做,做它将被删除明天'

import redis
from csv import reader
import csv

# password='redispw' falls geschützt, port und host ändern wenn auf Linux läuft 
db = redis.Redis(host= 'localhost', port=49153, password='redispw')

with open('band.csv', newline='\n', encoding='utf-8') as csvfile:
    # delimiter=',' wenn durch komma getrennt wenn durch Tab dann ='\t'
    bandreader = reader(csvfile, delimiter='\t')
    #bandreader = csv.DictReader(csvfile)
    for row in bandreader:
        # Setzten des Keys was drinne stehen soll Bsp: id oder Name als key
        redisKey = row[1]
        # Was soll alles in der Value stehen ist so ne art zsmfassung mit 
        redisVal = "member: " + row[2] + ", group: " + row[3] + ", role: " + row[4] + ", start: " + row[5] + ", end:" + row[6]  
        print(f"rediskey = { redisKey }, redisVal = { redisVal }\n")
        # man kann auch set benutzen aber hier sadd und mit smembers kann abgefragt werden
        db.sadd(redisKey, redisVal)

'

ars1skjm

ars1skjm1#

你的问题措辞不正确。你不想导入一个csv文件到redis中,你想从一个csv文件中设置键值到你的redis中。
在这种情况下,您的设计应该有所不同,为了避免解耦,使用一个方法读取csv并返回字典,如您所注意到的row[1]row[2]是您的值。
一旦你返回了字典,你可以像这样迭代它:

db = redis.Redis(host= 'localhost', port=49153, password='redispw')

for key,value in my_dict.items():
    db.set(key,value)

相关问题