这两天在用python调用接口时,因为接口返回的是str类型的数据,形如:

因为这样的str类似字典,所以我想把它转为字典以便处理,使用的是eval来进行转换,如下:

  1.  
    <pre name="code" class="python">a='{"errno":0,"errmsg":null,"unassigned":0,"total":0,"list":null}'
  2.  
    a=eval(a)
  3.  
    print type(a)

结果出现错误如下:NameError: name ‘null’ is not defined

查询资料发现,python无法处理null这样的字符串,所以报错。解决方法有两个:

一、把null转换为python可以接受的字符,例如空字符串

如:

  1.  
    global null
  2.  
    null=''
  3.  
    a='{"errno":0,"errmsg":null,"unassigned":0,"total":0,"list":null}'
  4.  
    a=eval(a)
  5.  
    print type(a)

发现这时就可以正常转换了。

二、使用json模块的loads()方法

这是一个大杀器,直接使用如下语句:

  1.  
    a=json.loads(a)
  2.  
    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

Python中用eval将字符串转换为字典时候出错:NameError: name ‘null’ is not defined的解决方法的更多相关文章

  1. python]用eval强制将字符串转换为字典变量时候出错:NameError: name 'null' is not defined[python]用eval函数 字符串转dict

    本博客已搬家至个人网站 在路上 - On the way 下面的 技术 分类. 你可以通过点击 更新帖子 [已解决]Python中,用eval强制将字符串转换为字典变量时候出错:NameError: ...

  2. python3 内置方法 字符串转换为字典

    内置方法:eval()将字符串转换为字典代码: str = '''{'backend':'www.oldboy.org', 'record':{ 'server':'122.111.2.23', 'w ...

  3. Python 字符串转换为字典(String to Dict)

    一.需求 为了处理从redis中拿到的value,如下 {"appId":"ct","crawlSts":false,"healt ...

  4. Python中 字符串 转换为 字典

    需求:把以下字符串转换为字典 #字符串 testStr = '{ "pName": "Ceshi", "gender": 1, " ...

  5. python 将字符串转换为字典

    在一般的工程处理中,需要将获取的字符串数据转换为字典,这样处理起来会非常方便. 我获取的是json数据: content = {"corpus_no":"64702772 ...

  6. 字符串转换为字典的函数eval(字符串)

    首先把多行的字符串,变成一个字符串,用'''和'''扩起来: 然后把这个字符串,赋值给b 这个时候,b根本调不出来,也用不起来: 用eval(b),来格式化字符串变成字典: 然后b就变成了一个字典:

  7. 关于使用json 字符串转换为字典问题

    问题背景: '{"backend": "www.baidu.org", "record": {"server": &qu ...

  8. Python关于eval与json在字典转换方面的性能比较

    背景介绍 因为python中有eval()方法,可以很方便的将一些字符串类型与字典等数据结构之间进行转换, 所以公司的数据处理同事在保存一些特殊数据时就直接将字典的字符串保存在数据库中. 在程序中读取 ...

  9. 使用eval将字符串转化成字典时报name 'null' is not defined错误解决办法

    在接口测试过程中,为了取值将形如字典形式的字符串使用eval()方法转化成字典方便取值 str={"code":100,"num":1,"data&q ...

  10. python json格式字符串转换为字典格式

    不废话,看代码 #_*_ coding:utf- _*_ import os import json course=open('C:\\Users\\ly199\\Desktop\\list.txt' ...

随机推荐

  1. JS语句创建简单表格

    var line=3; var list=3; var table=document.createElement("table"); table.setAttribute(&quo ...

  2. Docker 容器基本操作(基础)

    拉钩教育App版权问题,如果转载请附带拉钩教育等信息 一,什么是容器 容器是基于镜像创建的可运行实例,并且单独存在,一个镜像可以创建出多个容器 二.容器生命周期,五个状态 stopped : 停止状态 ...

  3. java后台接收参数为枚举,postman的json如何传入

    使用postman测试接口,其中一个参数为枚举类型,如何传入参数? 1 枚举类型: public enum UserCourseOrderSourceType{ USER_BUY(1,"用户 ...

  4. Stream流常用API

    文档 https://www.runoob.com/java/java8-streams.html JDK8 Stream API: https://docs.oracle.com/javase/8/ ...

  5. 初学银河麒麟linux笔记 第二章 虚拟机VMware16 共享文件

    由于需要把我在WINDOWS上写好的QT程序转移过来,因此这里需要设置共享文件.需要在虚拟机系统上安装VMwareTools,在主机上设置共享文件夹,这里参考了 https://blog.csdn.n ...

  6. Mysql-不同场景下操作/查询数据库表

    1. 通过关联字段把一张表的字段值更新另一张表的字段值 update table_a a, table_b b set a.username = b.username where a.id = b.i ...

  7. 快速导出Redis某个List列表所有数据

    Redis导出list数据 快速命令行 echo "lrange data_list_with_hash 0 25000" | ./redis-cli.exe -h 127.0.0 ...

  8. 关于idea2021.1版本的左边不显示bpmn Editor的问题

    我这里是自定义主题风格出现的问题 idea左上角File→选择setting→找到Color Scheme菜单,将主题颜色改为IntelliJ Light.在重启idea就好

  9. jupyter notebook 切换环境

    jupyter-notebook 中切换 conda 虚拟环境 介绍 ​ jupyter notebook是anaconda中root目录中默认的python环境,如果要使拥创建的其他环境,则需要安装 ...

  10. 语法——包、权限修饰符、final

    一.包 1.什么是包? 包是用来分门别类的管理各种不同的类的,类似于文件夹,建包有利于程序的管理和维护. 建包的语法格式: package 公司域名倒写.技术名称.包名建议全部英文小写,且具备意义. ...