redis 操作dict array

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jacke121/article/details/83831236

array需要tolist(),否则会报错:

Object of type 'ndarray' is not JSON serializable

import numpy as np
import json


ar=np.asarray([345,45])
result={'asdf':'asdf','54':ar}
with open("./hmm.json", 'w', encoding='utf-8') as json_file:
    json.dump(result,json_file,ensure_ascii=False)
解决方法:

result={'asdf':'asdf','54':ar.tolist()}
json不认numpy的array。
 

下面这个正常运行:

#coding=utf-8
import time
import numpy as np
import redis
import json
pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
red = redis.StrictRedis(connection_pool=pool)


for i in range(10):
    data = np.arange(1000 * 4000, dtype='float').reshape(1000, 4000)
    t1=time.time()
    user = {"Name": "Pradeep", "Company": "SCTL", "Address": [1,2,3]}

    # red.hmset("dict"+str(i), user)
    red.set(i,json.dumps(user))
    print('存入时间',time.time()-t1)

for i in range(10):
    t2=time.time()
    list2=red.get(i)
    # list2=red.hgetall("dict"+str(i))
    list2=json.loads(list2.decode())
    print('取出时间',time.time()-t2,len(list2))

猜你喜欢

转载自blog.csdn.net/jacke121/article/details/83831236