已解决TypeError: eval() arg 1 must be a string, bytes or code object

news2024/9/22 1:20:38

已解决TypeError: eval() arg 1 must be a string, bytes or code object






文章目录

  • 报错问题
  • 报错翻译
  • 报错原因
  • 解决方法
  • 联系博主免费帮忙解决报错





报错问题



粉丝群里面的一个小伙伴,想用Python爬虫然后解析数据,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错代码如下所示:

def spider(page=1):
    """

    :param page:
    :return:
    """
    url = "http://www.ceic.ac.cn/ajax/search?page={}&&start=2021-01-01&&end=2021-12-31&&jingdu1=&&jingdu2=&&weidu1=&&weidu2=&&height1=&&height2=&&zhenji1=&&zhenji2=&&callback=jQuery180008241254755365413_1671790451896&_=1671790540769".format(
        page)
    params = {}
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
    }
    resp = requests.get(url=url, params=params, headers=headers)
    print(type(resp))
    data = resp.content.decode("utf-8")
    data = re.sub("jQuery180008241254755365413_1671790451896\(",'',data)
    data = re.sub("\)$", '', data)

    data = eval(data)
    # data = resp.content.decode("utf-8").strip("(").strip(")")
    print(data,type(data))
    #
    data1 = data['shuju'][0]
    print(data1)
    print(type(data1))
    data1 = eval(data1)
    data_dic = json.loads(data1) # .get("shuju")
    data_arr = []
    for data in data_dic:
        data_info = {
            "M": data.get("M"),
            "O_TIME": data.get("O_TIME"),
            "EPI_LAT": data.get("EPI_LAT"),
            "EPI_LON": data.get("EPI_LON"),
            "EPI_DEPTH": data.get("EPI_DEPTH"),
            "LOCATION_C": data.get("LOCATION_C")
        }
        data_arr.append(data_info)
    print(data_arr)

报错信息截图所示


在这里插入图片描述




报错翻译



报错信息翻译如下所示

类型错误 :eval()参数1必须是字符串、字节或代码对象





报错原因



报错原因

粉丝在一次使用Python eval()函数时,出现报错了,当时也不知道什么原因,后面经过我给他讲解解决了这个问题,也重新认识了eval()函数。

小伙伴按下面的方式解决即可!!!




解决方法



eval函数的参数必须为字符串,否则将报错:

  • 1、 检查是否为字符串,可以检查类型
  • 2、是否有为空的行(粉丝就是这个原因)

以上是此问题报错原因的解决方法,欢迎评论区留言讨论是否能解决,博主看到会给出回复和你所遇到的报错问题解决方法!!!

联系博主免费帮忙解决报错

本文已收录于:《告别Bug专栏》,欢迎免费订阅!!!

本专栏用于记录学习和工作中遇到的各种疑难编程Bug问题,以及粉丝群里小伙伴提出的各种问题,文章形式:报错代码 + 报错翻译 + 报错原因 + 解决方法,包括程序安装、运行程序过程中遇到的等等问题,博主心愿:让天下没有难学的编程,从此告别Bug!!!

订阅专栏 + 关注博主后,扫描下方二维码进全栈学习互助交流群可以帮忙解决问题,并且可以免费领取300本IT电子书籍、学习资料、简历模板、面试题库,和小伙伴们交流学习、抱团取暖,共同进步!!!

资料获取 | 技术交流 | 抱团学习 | 咨询分享 请点击下方名片后扫描二维码

在这里插入图片描述

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

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

相关文章

YOLOv8 Ultralytics:最先进的 YOLO 模型——简介+实战教程

YOLOv8 Ultralytics:最先进的 YOLO 模型 什么是 YOLOv8? YOLOv8 是来自 Ultralytics 的最新的基于 YOLO 的对象检测模型系列,提供最先进的性能。 利用以前的 YOLO 版本, YOLOv8 模型更快、更准确 ,同时为训练模型提…

unity Vuforia发布移动端,禁止相机权限,出绿屏,强制退出app,如何去掉PERMISSION ERROR

unity Vuforia发布移动端,禁止相机权限,出绿屏,强制退出app,如何去掉PERMISSION ERROR问题描述更改需求解决方案:总结💢💢版权声明问题描述 unityvuforia 发布移动端,运行时需要相机…

墨天轮《2022年中国数据库行业年度分析报告》正式发布,精彩抢先看

自2022年4月份起,墨天轮数据社区持续发布月度 《中国数据库行业分析报告》,目前已发布7期,点击超过10万次,下载近万次。 为总结过往,展望未来,墨天轮数据社区正式发布了《2022年中国数据库年度行业分析报告…

MAC(m1)-VsCode上传项目到GitHub仓库

安装Git集成插件: GitHub Pull requests 在Visual Studio Code中查看和管理GitHub拉取请求和问题 Git Graph Git图形化显示和操作 最新最全 VSCODE 插件推荐(2023版)_白墨石的博客-CSDN博客_vscode插件 在vscode使用git提交推送代码_水…

精选100个Python实战项目案例,送给缺乏实战经验的你

前言:随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中。为什么这么多人学 Python ?我要喊出那句话了:“人生苦短,我用 Python!”,正是因为语法简单、容易学习,所以 …

Jetson 相机编码

Jetson 相机编码 Jetson相机编码是即将发布的“实践”系列的相关代码。有三个存储库: 1. camera-caps JetsonHacks Github存储库camera-caps 通过v4l2-ctl命令行工具提供了一个图形用户界面。您可能会发现,它可以方便地检查连接到Jetson上的V4L2相机的功能。这适…

复试算法练习Day17——从头到尾打印链表

复试算法练习Day17——从头到尾打印链表 题目描述 输入一个链表的头节点&#xff0c;按链表从尾到头的顺序返回每个节点的值&#xff08;用数组返回&#xff09;。 如输入{1,2,3}的链表如下图: 返回一个数组为[3,2,1] 0 < 链表长度 < 10000 示例1 输入&#xff1a;…

SpringMVC之JSON数据传输参数

目录 一&#xff1a;JSON普通数组 二&#xff1a;JSON对象数据 三&#xff1a;JSON对象数组 前面我们说过&#xff0c;现在比较流行的开发方式为异步调用。前后台以异步方式进行交换&#xff0c;传输的数据使用的是JSON,所以前端如果发送的是JSON数据&#xff0c;后端该如何…

C++11中的多线程的支持

C11中的多线程的支持 千禧年以后&#xff0c;主流的芯片厂商都开始生产多核处理器&#xff0c;所以并行编程越来越重要了。在C98中根本没有自己的一套多线程编程库,它采用的是C99中的POSIX标准的pthread库中的互斥锁,来完成多线程编程。 首先来简单一个概念:原子操作,即多线程…

目标检测框架在目标跟踪中的应用

目标检测框架在目标跟踪中的应用 从SiamRPN将跟踪问题定义为one-shot detection任务之后&#xff0c;出现了大量将检测组件由于跟踪的研究。不过Siamese系列一个很大的问题在于其本质仍然是一个模板匹配问题&#xff0c;网络关注的是寻找与target相似的东西&#xff0c;而忽视…

HCIA之数据发送过程

数据发送过程1、同广播域2、跨广播域&#xff08;需要将数据发送给网关&#xff0c;这通过路由器发包&#xff09;&#xff1a;总结1、同广播域 假设PC1要与PC2通讯&#xff1b; PC1不知道PC2的MAC地址&#xff0c;先发送ARP找到PC2的MAC地址&#xff1b; PC1知道了PC2的MAC地…

使用Python Seaborn绘制热力图(heatmap)的时候怎么改变配色

看到最近有些论文中会对Transformer encoder的attention weights进行可视化&#xff0c;通常会使用heatmap&#xff0c;我参考了一些博客&#xff0c;感觉已经总结得很详细了&#xff0c;例如这篇&#xff1a;python绘制热度图(heatmap)_黄思博呀的博客-CSDN博客_python heatma…

pm2:ecosystem.config.js

一、理解ecosystem.config.js1.1、字面理解&#xff1a;pm2生态系统配置文件。1.2、个人理解&#xff1a;pm2配置文件。类似于vite.config.ts、nuxt.config.ts。1.3、理解pm2&#xff1a;pm2 是一个带有负载均衡功能的Node应用的进程管理器。1.4、pm2的能力&#xff1a;1.4.1、…

【React】React入门(一)--React的创建、Jsx语法与组件以及状态(state)

&#x1f380;个人主页&#xff1a;努力学习前端知识的小羊 感谢你们的支持&#xff1a;收藏&#x1f384; 点赞&#x1f36c; 加关注&#x1fa90; 文章目录React简介react的特性虚拟Dom传统dom更新虚拟Domcreate-react-appJSX语法与组件jsx语法class组件函数组件组件嵌套组件…

基于Springboot搭建java项目(三十六)—— 服务监控工具WGCLOUD

服务监控工具WGCLOUD 一、服务监控 ​ “要想晚上睡的好&#xff0c;服务监控少不了”&#xff0c;服务器监控是应用程序开发中必不可少的一部分&#xff0c;做好服务监控有以下几个优点&#xff1a; 能够及时发现应用程序的漏洞能够定位到程序运行的瓶颈&#xff0c;查看程…

一篇搞懂SQL

前言 根据廖雪峰老师的教程&#xff0c;整理出一篇文章 一&#xff0c;为什么需要数据库&#xff1f; 小量的数据可以使用excel或者cvs存储&#xff0c;但是大批量的数据&#xff0c;这些都无法满足需求。如何管理这些数据就成了大问题。 所以&#xff0c;数据库作为一种专门…

机器视觉_HALCON_HDevelop用户指南_5.HDevelop过程(打磨ing)

文章目录五、HDevelop过程5.1. 过程类型5.2. 文件类型5.2.1. HDevelop程序5.2.2. 过程文件5.2.3. 库5.3. 过程作用域5.4. 过程位置5.5. 过程解析5.6. 受保护的过程5.7. 过程文档5.8. 即时编译&#x1f53a;五、HDevelop过程 Procedure&#xff1a; 在HDevelop文档中&#xff08…

【PyTorch】ImageNet数据集的使用和miniImageNet的构建

【PyTorch】ImageNet的使用和miniImageNet的构建1. ImageNet下载和简介1.1 下载地址1.2 初步处理1.3 devkit介绍2. miniImageNet2.1 miniImageNet的划分3. 使用ImageFolder构建数据集类3.1 重写DataFolder中的方法3.2 BatchSampler实现episode采样3.3 batch可视化1. ImageNet下…

Oracle数据库入门大全

oracle数据库 Oracle 数据库、实例、用户、表空间、表之间的关系 数据库 数据库是数据集合。Oracle是一种数据库管理系统&#xff0c;是一种关系型的数据库管理系统。 通常情况了我们称的“数据库”&#xff0c;并不仅指物理的数据集合&#xff0c;他包含物理数据、数据库管理…

let/const相关内容(五)

1.块级作用域的应用 &#xff08;一&#xff09;if-switch-for代码中的应用 ① if语句的代码就是块级作用域 // if语句的代码块是块级作用域 if (true) {var foo "foo"let bar "bar" }console.log(foo) console.log(bar);② switch语句的代码也是块级…