json.loads和eval 速度对比

json.loads和eval 速度对比

  • 代码1
  • 结果图
  • 代码2
  • 参考地址

代码1

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

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倍!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/242472.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FlieZilla服务器配置与数据访问、传输

概述 手机apk当初服务器,PC端访问手机端的数据,再没有数据线的情况下,非常方便。希望各位同仁搞起来,在此做个笔录。 安装包下载链接:https://download.csdn.net/download/qq_36075612/88577274 一、下载安装包&…

2023-12-08 队列与栈

栈与队列一 232. 用栈实现队列 思路:对于使用栈实现队列的话,必须使用两个共同来维护使得每次都能先进先出! class MyQueue:def __init__(self):# 需要建立两个list来维护出栈以及进栈self.stack_in []self.stack_out []def push(self, x…

“ABCD“[(int)qrand() % 4]作用

ABCD[(int)qrand() % 4] 作用 具体来说: qrand() 是一个函数,通常在C中用于生成一个随机整数。% 4 会取 qrand() 生成的随机数除以4的余数。因为4只有四个不同的余数(0, 1, 2, 3),所以这实际上会生成一个0到3之间的随…

1.4 Postman的安装

hello大家好,本小节我们来安装一下Postman,好为我们后续的测试工作做准备。 首先,打开Postman的官网Postman API Platform 然后根据同学们自己电脑的操作系统来下载对应的Postman安装包。我这里拿windows来举例。我们点击windows的图标 会跳…

STM32G030C8T6:使用外部晶振配置LED灯闪烁

本专栏记录STM32开发各个功能的详细过程,方便自己后续查看,当然也供正在入门STM32单片机的兄弟们参考; 本小节的目标是,使用STM32G030C8T6单片机,通过STM32CubeMX软件,配置并使用外部8MHz晶振,实…

孩子还是有一颗网安梦——Bandit通关教程:Level 10 → Level 11

🕵️‍♂️ 专栏《解密游戏-Bandit》 🌐 游戏官网: Bandit游戏 🎮 游戏简介: Bandit游戏专为网络安全初学者设计,通过一系列级别挑战玩家,从Level0开始,逐步学习基础命令行和安全概念…

3、ollvm移植

github: https://github.com/obfuscator-llvm/obfuscator/tree/llvm-4.0 先复制 include Obfuscation: /home/nowind/llvm/ollvm/obfuscator/include/llvm/Transforms/Obfuscation /home/nowind/llvm/llvm-project-9.0.1/llvm/include/llvm/Transforms/Obfuscation lib Ob…

13.字符串长度【2023.12.5】

1.问题描述 获取字符串长度是编程过程中常用的操作之一。编写一个程序,输入一个字符串,然后输出字符串的长度。 2.解决思路 输入一个字符串。程序将输入的字符串的长度输出。使用内置函数len()获取字符串的长度 3.代码实现 strinput("请输入一…

C语言实现简易版扫雷游戏

由于前面所讲知识点有限,无法实现扫雷游戏的全部功能,本期为各位呈现的是相对简单且易于编写的扫雷游戏。 第一步 设计游戏可玩多次的循环框架 这里在之前猜数字游戏时使用的循环框架一致,但是上次讲解不够深入,这里补充一下。这…

minio可用性磁盘/节点故障恢复的研究

做poc真的很累。年初的报告拿出来按topic拿出来分享一下。 目的 通过模拟各类条件下的minio集群状态,确认minio是否符合官方“N/2硬盘在线,数据可读取;N/21硬盘在线,数据可读写”的描述。 同时通过停止minio集群中节点的服务停止…

青少年CTF-Crypto(Morse code/ASCII和凯撒)

FLAG:你这一生到底想干嘛 专研方向: Web安全 ,Md5碰撞 每日emo:不要因为别人都交卷了,就乱选答案 文章目录 1.Morse code2、ASCII和凯撒的约定 1.Morse code 题目提示摩尔斯电码,这个是给的附件 直接用摩尔斯解密&am…

基础算法(1):排序(1):选择排序

今天对算法产生了兴趣,开始学习基础算法,比如排序,模拟,贪心,递推等内容,算法是很重要的,它是解决某个问题的特定方法,程序数据结构算法,所以对算法的学习是至关重要的&a…

【数组Array】力扣-5 最长回文子串

目录 题目描述 题解labuladong 题目描述 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s "babad" 输出:"bab"…

Spring上IOC之@EnableAspectJAutoProxy

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

〖大前端 - 基础入门三大核心之JS篇(53)〗- 构造函数与类

说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:哈哥撩编程,十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司…

Git应用——代码提交规范 feat ,fix ,style

当前使用 feat 增加新功能fix 修复问题/BUGstyle 代码风格相关无影响运行结果的perf 优化/性能提升refactor 重构revert 撤销修改test 测试相关docs 文档/注释chore 依赖更新/脚手架配置修改等workflow 工作流改进ci 持续集成types 类型定义文件更改wip 开发中 别处看到 fea…

Mac安装Anaconda3最新实用教程

Anaconda3安装 1、Anaconda3下载 我用的是这个链接:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 可以按需要选择自己需要的版本,也可以自行搜索其他网站下载 下载完成之后一路默认安装就可以了。 安装好之后可以在终端试一下:…

Java 基础学习(八)多态、接口、造型与内部类

1 多态 1.1 多态 1.1.1 多态的意义 一个类型的引用在指向不同的对象时会有不同的实现。依然借助前面案例中的 Person类、Student类和 Teacher 类举例,看如下的代码: Person p1 new Student(); Person p2 new Teacher(); p1.schedule(); p2.schedul…

【lesson14】MySQL表的基本查询(1)

文章目录 表的基本操作介绍retrieveselect列建表基本测试 where子句建表基本测试 表的基本操作介绍 CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除) retrieve select列 建表 基本测试 插入数据 全列查询 …