我最近使用的Train状态API在JSON对象中添加了两个额外的键值对(has_arrived,has_departed),这导致我的脚本崩溃.

这是字典:

{

"response_code": 200,

"train_number": "12229",

"position": "at Source",

"route": [

{

"no": 1,

"has_arrived": false,

"has_departed": false,

"scharr": "Source",

"scharr_date": "15 Nov 2015",

"actarr_date": "15 Nov 2015",

"station": "LKO",

"actdep": "22:15",

"schdep": "22:15",

"actarr": "00:00",

"distance": "0",

"day": 0

},

{

"actdep": "23:40",

"scharr": "23:38",

"schdep": "23:40",

"actarr": "23:38",

"no": 2,

"has_departed": false,

"scharr_date": "15 Nov 2015",

"has_arrived": false,

"station": "HRI",

"distance": "101",

"actarr_date": "15 Nov 2015",

"day": 0

}

]

}

毫不奇怪,我收到以下错误:

Traceback (most recent call last):

File "", line 1, in

NameError: name 'false' is not defined

如果我没有弄错,我认为这是因为JSON响应中的布尔值为false / true,而Python识别为False / True.

它有什么办法吗?

PS:我尝试将has_arrived的JSON响应转换为字符串,然后将其转换回布尔值,但发现如果字符串中有任何字符,我将始终获得True值.

我有点被困在这里.

解决方法:

尽管Python的对象声明语法与Json语法非常相似,但它们是截然不同且不兼容的.除了True / true问题,还有其他问题(例如Json和Python处理日期的方式非常不同,而python允许注释而Json没有).

而不是试图将它们视为同一个东西,解决方案是根据需要从一个转换为另一个.

Python的json库可用于在字符串中解析(读取)Json并将其转换为python对象…

data_from_api = '{...}' # data_from_api should be a string containing your json

info = json.loads(data_from_api)

# info is now a python dictionary (or list as appropriate) representing your Json

你也可以将python对象转换为json …

info_as_json = json.dumps(info)

例:

# Import the json library

import json

# Get the Json data from the question into a variable...

data_from_api = """{

"response_code": 200,

"train_number": "12229",

"position": "at Source",

"route": [

{

"no": 1, "has_arrived": false, "has_departed": false,

"scharr": "Source",

"scharr_date": "15 Nov 2015", "actarr_date": "15 Nov 2015",

"station": "LKO", "actdep": "22:15", "schdep": "22:15",

"actarr": "00:00", "distance": "0", "day": 0

},

{

"actdep": "23:40", "scharr": "23:38", "schdep": "23:40",

"actarr": "23:38", "no": 2, "has_departed": false,

"scharr_date": "15 Nov 2015", "has_arrived": false,

"station": "HRI", "distance": "101",

"actarr_date": "15 Nov 2015", "day": 0

}

]

}"""

# Convert that data into a python object...

info = json.loads(data_from_api)

print(info)

第二个例子展示了True / true转换的发生方式.另请注意引用的更改以及如何删除注释…

info = {'foo': True, # Some insightful comment here

'bar': 'Some string'}

# Print a condensed representation of the object

print(json.dumps(info))

# Or print a formatted version which is more human readable but uses more bytes

print(json.dumps(info, indent=2))

输出:

{"bar": "Some string", "foo": true}

{

"bar": "Some string",

"foo": true

}

标签:python,json,dictionary,boolean

来源: https://codeday.me/bug/20191004/1851821.html

json转python_将“true”(JSON)转换为Python等效的“True”相关推荐

  1. python json库函数_python基础之JSON标准库

    一.序列化的一些简单概念 我们平常使用的python对象所进行的操作是在内存中,当程序关闭就会被清空,所以我们需要用一种合适的方法将这些数据保存下来. 为了将我们的数据进行永久存储,需要引入序列化(p ...

  2. python json包_python编程 之 json包

    1,json是什么? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写. 我的理解就是:json是一种统一的格式化的文件,比如,一个jso ...

  3. python json模块详解_深入解析Python编程中JSON模块的使用

    JSON编码支持的基本数据类型为 None , bool , int , float 和 str , 以及包含这些类型数据的lists,tuples和dictionaries. 对于dictionar ...

  4. python json数组解析_Python读取JSON数据操作实例解析

    问题 你想读写 JSON(JavaScript Object Notation) 编码格式的数据. 解决方案 json模块提供给了一种很简单的方式来编码和解码json数据,其中两个主要的函数时json ...

  5. python json文件操作_python对json的操作总结

    引言 你一定听说过 JSON 吧.JSON 是当前最常用的数据传输格式之一,纯文本,容易使用,方便阅读,最重要的是在多个场合都被大量被使用. 既然 JSON 这么好,那就让我们继续探险,去掌握 pyt ...

  6. python -m json.tool 中文乱码 Format JSON with python

    python -m json.tool 中文乱码 Format JSON with python 现在以 json 为数据传输格式的 RESTful 接口非常流行.为调试这样的接口,一个常用的办法是使 ...

  7. python字典与json转换_python字典与json转换的方法总结

    在python中json分别由列表和字典组成,本文主要介绍python中字典与json相互转换的方法.使用json.dumps可以把字典转成json字符串.使用json.loads可以把json字符串 ...

  8. python读取与写入json+csv变成coco的json文件+安装labelme

    一.python读取与输出json 1.python字典和json互转这里用json.dumps,还原则用json.loads,dumps以后就变为字符串了 import json# info = { ...

  9. python json是什么_python的json用法

    一.json是什么 客户端向服务器端发送请求后,服务器端怎么才能把用户需要的数据返回给客户端呢.这时我们就需要用一个指定的格式将数据,按照指定格式返回客户端.这时就有了两种数据传输的方式(XML和Js ...

最新文章

  1. 深入了解Intel保护模式
  2. c语言会出现fullgc,以上述代码为基础,在发生过一次FullGC后,上述代码在He
  3. python简单的爬虫教程中召唤小海龟_Python练习,网络小爬虫(初级)
  4. JZOJ 5931. 【NOIP2018模拟10.27】冒泡排序
  5. node npm nrm nvm gnvm 相爱相杀
  6. excel合并计算_【Excel】合并计算和模拟分析的应用
  7. 前端学习(2638):读懂代码之登录页login.vue之ref和rules
  8. Win-MASM64汇编语言-通用寄存器AX/BX/CX/DX/SI/DI/BP
  9. python实现:用类实现一个图书馆,实现借书,入库,还书,查书,等功能,要求数据可以保存到文件中,退出后下次可以找回数据...
  10. 分享一个免杀的netcat.exe
  11. java并发编程(3)--线程 有序性 volatile
  12. 农产品SCM供应链协同系统解决方案
  13. GIS数据转换器(栅格)(栅格向矢量网格和栅格向栅格的转换)
  14. 流水线上的农民:我在工厂种蔬菜
  15. 直接插入法(C语言版本)
  16. 哈哈日语 日语五十音学记资料汇编
  17. google谷歌动态口令
  18. 编写一个程序。要求输入5个学生的成绩(从0到100的整数)并将这5个数保存到文件“data.txt”中,然后再编写一个程序,从文件“data.txt”中读取这5个学生的成绩,计算并输出他们的平均数,然
  19. Thymeleaf基本语法及使用方法
  20. 日常计算机网络英语对话,日常话题英语口语

热门文章

  1. python——socket实现简单C/S交互开发
  2. C/C++——一些与输入有关的istream类成员函数
  3. Java—Object类及自定义克隆详解
  4. Kubernetes-ReplicationController(RC)(四)
  5. 【数字图像处理】一种求图像边缘的方法
  6. 文件字符输入流的使用 FileReader java
  7. python-列表演练-根据学生id获取学生数据-获取学生数据中得分较高的前N条数据
  8. nginx 修改 max open files limits
  9. Java单链表、双端链表、有序链表实现
  10. Guava链式风格Ordering比较器实例