版权声明:本文为博主原创文章,未经博主允许不得转载。 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))