json.loads和eval 速度对比

json.loads和eval 速度对比

代码1

python 复制代码
import json
import time
import pandas as pd

data_sets = pd.read_pickle("val_token_id.pandas_pickle")
data_sets=[str(i) for i in data_sets]
start=time.time()
[json.loads(i) for i in data_sets]
print(time.time()-start)

start=time.time()
[eval(i) for i in data_sets]
print(time.time()-start)

结果图

代码2

python 复制代码
import json
import time
from multiprocessing import Process, Manager, freeze_support
import pandas as pd
from tqdm import tqdm
def json_loads_data(return_list,one_data):
    return_list+=[json.loads(i)  for i in tqdm(one_data)]

if __name__ == '__main__':
    freeze_support()
    data_sets = pd.read_pickle("val_token_id.pandas_pickle")
    data_sets = [str(i) for i in data_sets]

    start = time.time()
    data = Manager().list()
    num = 5
    p_list = []
    for i in range(0, len(data_sets), len(data_sets)//num):
        j = i + len(data_sets)//num
        p = Process(target=json_loads_data, args=(data, data_sets[i:j]))
        p.start()
        p_list.append(p)
    for p in p_list:
        p.join()

    print("multi_json_loads", time.time() - start)

    start = time.time()
    [json.loads(i) for i in data_sets]
    print("json_loads", time.time() - start)

    start = time.time()
    pd.DataFrame(data_sets)[0].apply(lambda x: json.loads(x)).values.tolist()
    print("dataFrame_apply", time.time() - start)

    start = time.time()
    json.loads(str(data_sets).replace("'", ""))
    print("json_loads_str", time.time() - start)

    start = time.time()
    [eval(i) for i in data_sets]
    print("eval", time.time() - start)

参考地址

https://blog.csdn.net/qq_35869630/article/details/105919104

Python 在大数据处理下的优化(一)用json.loads比eval快10倍!

相关推荐
lzhdim14 小时前
SQL 入门 17:MySQL 数据类型:从字符串到 JSON 的全面解析
数据库·sql·mysql·json
无风听海15 小时前
JSON Web Token(JWT)完全指南
java·前端·json
阿汤猫66616 小时前
基于OpenCode的Harness架构实战验收指南v3.0 (windows系统)
windows·prompt
阿汤猫66617 小时前
基于OpenCode的Harness架构实战v2.2(windows系统)
windows·prompt
xiaoshuaishuai819 小时前
C# AvaloniaUI 资源找不到报错
java·服务器·前端·windows·c#
思麟呀19 小时前
C++11并发编程:call_once一次性执行+atomic原子类型+CAS无锁编程+自旋锁
linux·开发语言·jvm·c++·windows
爱讲故事的20 小时前
操作系统第一讲复习:为什么学习操作系统,以及操作系统到底在做什么?
linux·开发语言·windows·学习·ubuntu·c#
韩曙亮1 天前
【错误记录】flutter pub get 执行报错 ( 打开 Windows 开发者模式 )
windows·flutter
一个人旅程~1 天前
如何让bootcamp-win10中的触摸板像macbook中一样丝滑原生效果?
windows·经验分享·macos·电脑
誰能久伴不乏1 天前
Qt C++ 解析 JSON 完全指南:从核心概念到工业级实战
c++·qt·json