将csv数据存入Redis

数据类型使用hash

将csv中的数据存储到redis中

第一步:启动redis服务并且连接

import redis

r = redis.Redis(host='localhost',port=6379,decode_responses=True)

第二步:遍历csv文件

with open("filepath",encoding="gbk") as f:
	reader = csv.DictReader(f)
	for row in reader:
		print(row)

第三步:向redis中传送数据

数据结构使用hash类型,将MMSI、Lat_d、Lon_d、Speed、UnixTime以对象的方式传入到redis中

HMSET key field value [field value ...]
with open("filepath",encoding="gbk") as f:
	reader = csv.DictReader(f)
	for row in reader:
		#时间戳作为键
		key = time.time()
		MMSI = row["MMSI"]
		Speed = row["Speed"]
		Lat_d = row["Lat_d"]
		Lon_d = row[Lon_d]
		UnixTime = row[UnixTime
		r.hmset(key,{
			"MMSI":MMSI,
			"Speed":Speed,
			"Lat_d":Lat_d,
			"Lon_d":Lon_d,
			"UnixTime":UnixTime
		})
		print(MMSI,Speed,Lat_d,Lon_d,UnixTime)
	print("导入完成")

封装成方法

Redis连接方法
def RedisConnect():
	global r
	r = redis.Redis(host='localhost',port=6379,decode_responses=True)	
csv数据传至Redis中

filepath:csv路径

encodeway:csv的编码方式

def TransDataToRedis(filepath,encodeway):
	with open(filepath,encoding=encodeway) as f:
	reader = csv.DictReader(f)
	for row in reader:
		#时间戳作为键
		key = time.time()
		MMSI = row["MMSI"]
		Speed = row["Speed"]
		Lat_d = row["Lat_d"]
		Lon_d = row[Lon_d]
		UnixTime = row[UnixTime
		r.hmset(key,{
			"MMSI":MMSI,
			"Speed":Speed,
			"Lat_d":Lat_d,
			"Lon_d":Lon_d,
			"UnixTime":UnixTime
		})
		print(MMSI,Speed,Lat_d,Lon_d,UnixTime)
	print("导入完成")

版权声明:本文为weixin_46429290原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。