python解析考试题库数据

news2024/9/23 16:28:22

应单位要求需要参加某个考试,但考试需要从手机端登陆学习,1000多道题需要挨个刷一遍太过于麻烦,萌生了把题目和答案全部扒下来的想法,再用python做数据的清洗和梳理,最后整合出来所有的考试题库信息。

  1. 首先打开浏览器分析数据包,找到批量查询到的题目数据,在Response可以看到返回的数据,从中找一下关键题目,然后直接拷贝出来就行,这个请求包含所有数据,就不用再挨个模拟请求了。

  1. 抓取到的数据太过于多,包含了各种html的信息,可以把题目的数据单独拷贝出来

  1. 找到json数据的规律,让python批量解析json会容易很多,这里可以使用文本编辑器批量替换的功能,将"p_questions.push("替换成{, 再将"})"替换成"," ,这样就有了json的基本key-value结构,最后加上[]以列表形式呈现,这样就完成了数据的基本清洗。

  1. 下面可以加载json文件,以json的形式处理数据列表,逐个分析每一项的每一个字段。这里可以加入一些异常捕获逻辑,防止某个错误阻断整体流程。
import json

# 读取文件中的JSON数据
def read_json_file(file_name):
    with open(file_name, 'r') as f:
        data = json.load(f)
    return data


if __name__ == "__main__":
    data = read_json_file('data/ti.json')
    num = 1
    for line in data:
        print(str(num) + '. ' + line['description'])
        num += 1
        answer = json.loads(line['answer'])
        if int(line['type']) == 3:
            if str(answer['answer']) == 'false':
                print('答案:错')
            else:
                print('答案:对')
        elif int(line['type']) == 1 or int(line['type']) == 2:
            option = json.loads(line['option'])
            o_str = ''
            for o in option:
                o_str = o_str + o + ': ' + option[o] + '\n'
            print('选项:\n' + o_str)
            print('答案:' + str(answer['answer']))

        if answer['analysis'] is not None:
            print('解析:' + answer['analysis'])

最终将生成的数据导入word中,形成可以看的文档。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Socks5代理是什么?有哪些优势?

在线隐私和⽹络领域,Socks5代理已经成为⼀种受欢迎且强⼤的⼯具。但是Socks5是什么呢?使⽤Socks代理有什么优势?在本⽂中,Oxylabs和你一起探讨这些问题,揭⽰Socks5代理的世界。 深⼊了解Socks5代理 socks&#xff08…

计算机网络 day3 广播风暴 - VLAN - Trunk

目录 广播风暴: 1.什么是广播风暴? 2.危害: 3.防范 STP生成树协议:(72条消息) 生成树协议 — STP_生成树协议步骤_一下子就醒了的博客-CSDN博客 VLAN: VLAN是什么? VLAN起到的作用: 广…

软件测试常见基础知识面试题

一、测试基础理论 1.1 什么是软件测试? 为了发现程序中的错误而执行程序的过程 1.2 软件测试流程 1)需求调查 2)制定初步的项目计划 3)测试准备 4)测试设计 5)测试实施 6)测试评估 1.3 软件…

华为OD机试真题 Python 实现【字符串解密】【2023 B卷 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Python算法源码六、效果展示1、输入2、输出3、说明 一、题目描述 给定两个字符串string1和string2。 string1是一个被加扰的字符串。string1由小写英文字母(‘a’-‘z’)和数字字符&#xf…

【SCI征稿】计算机算法、通信、人工智能、网络、物联网、机器学习等领域,13本期刊影响因子上涨,这几本期刊录用快

2023年JCR发布后,计算机领域SCI期刊有13本影响因子上涨,审稿周期短,进展顺利: 1️⃣IF:6.0-7.0↑,JCR2区,中科院3区,SCI&EI 双检,CCF-C类 征稿领域:概率…

喜讯 | ShowMeBug CEO 李亚飞获评“稀土开发者”年度技术引领人物

近日,由稀土开发者大会举办的「掘金技术引力榜」评选活动揭晓,李亚飞从众多优秀的技术开发者中脱颖而出,获评年度技术引领人物。 稀土开发者大会年度技术引领人物获奖榜单 稀土开发者大会是由稀土掘金技术社区主办,集国际化前瞻…

c# opencv 找到图像的轮廓,并绘制轮廓

Mat colorMat new Mat();Mat outMat new Mat();Mat resultMat new Mat();Mat src Cv2.ImRead("I:\\mask.jpg");//转成灰度图Cv2.CvtColor(src, colorMat, ColorConversionCodes.RGB2GRAY);//对灰度图像进行阈值操作得到二值图像Cv2.Threshold(colorMat, outMat, 0…

【Python编程系列】3、初识Python代码:输入输出

1、输出 在PyCharm上新建项目和python文件后,编写一行代码,输出:"Hello World"这句话。代码为: print("Hello World")PyCharm上运行代码有两种方式,如下图1和2。代码运行结果在下方显示: print函数打印字符串时加单引号或双引号,不能混用。 单引…

大厂都在做的jmeter接口自动化测试登峰造极的JMETER实现接口自动化测试

目录 一、JMETER的环境搭建 二、JMETER的汉化 三、JMETER的接口请求 四、JMETER的参数化 五、JMETER的JSON传参 六、JMETER的断言添加 一、JMETER的环境搭建 二、JMETER的汉化 临时汉化方法:打开jmeter,options-->choose language-->选择语言…

simulink 常用子系统 核心是函数封装simulink function

目录 Enabled Subsystem Triggered Subsystem Function-call Subsystem Simulink Function Enabled Subsystem Triggered Subsystem Function-call Subsystem Simulink Function 类似c函数的封装 数组形参

ikun猛戳进来丨使用Python打造属于你的ikun音乐播放器,简直不要太好用

首先声明,我不是小黑子,我不是小黑子! 作为一个ikun,时刻都在想着我们家姐姐! 这不上次用Python做了一个ikun飞机大战,今天再给大家整活一手,Python tkinter开发一个专属ikun音乐播放器&#x…

CVPR 2023 | 掩码图像建模MIM的理解、局限与扩展

编者按:掩码图像建模(Masked Image Modeling, MIM)的提出,为计算机视觉模型训练引入无监督学习做出了重要贡献。得益于 MIM 的预训练算法,计算机视觉领域在近年来持续输出着优质的研究成果。然而整个业界对 MIM 机制的…

【Java从入门到大牛】程序流程控制

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Java从入门到大牛 🌠 首发时间:2023年7月7日 🦋 欢迎关注🖱点赞👍收藏🌟留言&#x1f43e…

STM32CubeMX实现USB虚拟串口环回测试功能

STM32CubeMX实现USB虚拟串口环回测试功能 📍参考ST官方给出的参考案例:https://www.stmcu.com.cn/Designresource/detail/LAT/711466🎈同功能配置可以参考《STM32 USB使用记录:使用CDC类虚拟串口(VCP)进行通…

MySQL系统函数

系统函数: 数学函数 1、abs() pi() 2、sqrt() 3、cell() floor() round() truncate() cell是向上取整,floor是向下取整。 注意:round负数和java里面的四舍五入有所不同 Round还可以指明位数 turncate是截断 4、power() …

颜色分类 (力扣)JAVA

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解决这…

用牛鲨NFT赚取SUI的机会,这不就来了?

很高兴向大家宣布Mysten Labs的Bullshark Quests活动,这是一个为Bullshark持有者提供赚取SUI奖励(和其他福利)的全新方式,Bullshark是ACES计划的一部分。Bullshark Quests将成为一个持续的活动,为Bullshark持有者提供通…

为什么需要多语言并行机器翻译?

随着全球化的加速和不同语言之间的交流需求不断增长,多语言机器翻译(Multilingual Parallel Machine Translation)成为一个备受关注的领域。传统上,机器翻译系统主要集中于一对特定语言之间的翻译,但这种单一语言对的模…

微服务的划分姿势分享

微服务是一种理念,没有确切的定义和边界,好比设计原则,是属于抽象的概念。在定义不明确的情况下谈划分也是一种各说各话,具体问题需要具体分析。 微服务的划分矛盾在于粒度,如果粒度太大了,分和不分似乎都差…

npm 记录

转 请看原文,我只是怕原文没了,复制了一遍。我目的是想记录缓存那一块。 前端工程化 - 剖析npm的包管理机制 - 掘金 在content-v2/sha512 执行 grep -n "https://registry.npmjs.org/base64-js/-/base64-js-1.0.1.tgz" -r ./ 获取缓存包…