No hay muchas tonterías, ¡solo ve al código!
analizar de la siguiente manera:
json.loads convierte el objeto baijson du en una función de objeto nativo
eval () para ejecutar una expresión de cadena y devolver el valor de la expresión.
json.loads () convierte la cadena json al tipo de diccionario
Por ejemplo, los datos 100, ver el efecto de ejecución
# coding:utf8
import sys, json
from time import time
a = {
}
for i in range(0,100):
a[i + 190000] = (24, 31020, 3.804021, 800569, 700052)
# 转成字符串
dict_str = repr(a)
t1 = time()
d = eval(dict_str)
t2 = time()
print("eval cost time is %f." % (t2 - t1))
# 转成json类型的字符串
dict_json = json.dumps(a)
t1 = time()
d = json.loads(dict_json)
t2 = time()
print("json cost time is %f." % (t2 - t1))
Resultados de la prueba
Ejecute 1000 datos para ver el efecto
# coding:utf8
import sys, json
from time import time
a = {
}
for i in range(0,1000):
a[i + 190000] = (24, 31020, 3.804021, 800569, 700052)
# 转成字符串
dict_str = repr(a)
t1 = time()
d = eval(dict_str)
t2 = time()
print("eval cost time is %f." % (t2 - t1))
# 转成json类型的字符串
dict_json = json.dumps(a)
t1 = time()
d = json.loads(dict_json)
t2 = time()
print("json cost time is %f." % (t2 - t1))
Imagen de efecto Cuando los
datos son 10000, la interfaz se está ejecutando
# coding:utf8
import sys, json
from time import time
a = {
}
for i in range(0,10000):
a[i + 190000] = (24, 31020, 3.804021, 800569, 700052)
# 转成字符串
dict_str = repr(a)
t1 = time()
d = eval(dict_str)
t2 = time()
print("eval cost time is %f." % (t2 - t1))
# 转成json类型的字符串
dict_json = json.dumps(a)
t1 = time()
d = json.loads(dict_json)
t2 = time()
print("json cost time is %f." % (t2 - t1))
Resumen: eval no es tan bueno como json.loads en rendimiento. Depende de las necesidades personales.