Python中用eval将字符串转换为字典时候出错:NameError: name ‘null’ is not defined的解决方法
2015-05-15 15:28
1041 查看
这两天在用python调用接口时,因为接口返回的是str类型的数据,形如:
因为这样的str类似字典,所以我想把它转为字典以便处理,使用的是eval来进行转换,如下:
结果出现错误如下:NameError: name ‘null’ is not defined
查询资料发现,python无法处理null这样的字符串,所以报错。解决方法有两个:
一、把null转换为python可以接受的字符,例如空字符串
如:
发现这时就可以正常转换了。
二、使用json模块的loads()方法
这是一个大杀器,直接使用如下语句:
当然,要记得引入json。
注意:json字符串中,必须用双引号,如果定义成下面这样,是不对的
使用json,loads()时会报错:
因为这样的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)
相关文章推荐
- Python中,用eval强制将字符串转换为字典变量时候出错:NameError: name 'null' is not defined
- [python]用eval强制将字符串转换为字典变量时候出错:NameError: name 'null' is not defined[python]用eval函数 字符串转dict
- Python使用eval强制转换字符串为字典时报错:File "<string>", line 1, in <module> NameError: name 'nan' is not defined
- python eval方法转换字符串到字典类型时NameError
- Python中NameError: name 'reload' is not defined 解决方法
- Python中NameError: name 'reload' is not defined解决方法
- NameError: name 'strip' is not defined解决方法
- Python 解决 :NameError: name 'reload' is not defined 问题
- 关于scrapy NameError: global name 'DmozItem' is not defined的解决方法
- Python 解决 :NameError: name 'reload' is not defined 问题
- Python 解决 :NameError: name 'reload' is not defined 问题
- Python 解决 :NameError: name 'reload' is not defined 问题
- NameError: name 'admin' is not defined 解决问题的方法:
- Python NameError: name ‘null’ is not defined
- Python编译时提示“NameError: name 'Popen' is not defined”及”NameError: name 'PIPE' is not defined“错误的解决
- Python 解决 :NameError: name 'reload' is not defined 问题
- Python 解决 :NameError: name 'reload' is not defined 问题
- python提示NameError: name 'xxx' is not defined
- NLTK使用中NameError: name 'FreqDist' is not defined问题解决
- ASP.NET在调用js方法时出现Uncaught ReferenceError:PageMethods is not defined的解决方法