Python中用eval将字符串转换为字典时候出错:NameError: name ‘null’ is not defined的解决方法
2024-10-10 14:29:46
这两天在用python调用接口时,因为接口返回的是str类型的数据,形如:
因为这样的str类似字典,所以我想把它转为字典以便处理,使用的是eval来进行转换,如下:
- <pre name="code" class="python">a='{"errno":0,"errmsg":null,"unassigned":0,"total":0,"list":null}'
- a=eval(a)
- print type(a)
结果出现错误如下:NameError: name ‘null’ is not defined
查询资料发现,python无法处理null这样的字符串,所以报错。解决方法有两个:
一、把null转换为python可以接受的字符,例如空字符串
如:
- global null
- null=''
- a='{"errno":0,"errmsg":null,"unassigned":0,"total":0,"list":null}'
- a=eval(a)
- print type(a)
发现这时就可以正常转换了。
二、使用json模块的loads()方法
这是一个大杀器,直接使用如下语句:
- a=json.loads(a)
- print type(a)
完事,转换正常,python自动把null转换为了python支持的None。
当然,要记得引入json。
注意:json字符串中,必须用双引号,如果定义成下面这样,是不对的
a="{'errno':0,'errmsg':null}"
使用json,loads()时会报错:
ValueError: Expecting property name: line 1 column 1 (char 1)
https://blog.csdn.net/onlyanyz/article/details/45745045
最新文章
- [C#]想说一说嵌套数组
- 获取枚举值上的Description特性说明
- 在A*寻路中使用二叉堆
- Android Studio常用快捷键汇总(mac)
- Sudoku Solver
- 记录android开发博客
- java学习之JDBC
- [Linux]使用Clang实现代码静态分析
- headfirst设计模式(1)—策略模式
- goagant:403. That’s an error.
- VerilogHDL可综合设计的注意事项
- Oracle中Union与Union All的区别(适用多个数据库)
- centos7上关闭防火墙
- kafka 控制台命令
- 小程序之 微信小程序下拉上方出现空白
- 基于ajax提交数据
- 数据库设计理论与实践&#183;<;四>;数据库基本术语及其概念
- 案例学python——案例三:豆瓣电影信息入库
- pl-svo代码解读
- 面向对象三大特性一一继承(inheritance)和组合(Composition)