json转python_将“true”(JSON)转换为Python等效的“True”
我最近使用的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”相关推荐
- python json库函数_python基础之JSON标准库
一.序列化的一些简单概念 我们平常使用的python对象所进行的操作是在内存中,当程序关闭就会被清空,所以我们需要用一种合适的方法将这些数据保存下来. 为了将我们的数据进行永久存储,需要引入序列化(p ...
- python json包_python编程 之 json包
1,json是什么? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写. 我的理解就是:json是一种统一的格式化的文件,比如,一个jso ...
- python json模块详解_深入解析Python编程中JSON模块的使用
JSON编码支持的基本数据类型为 None , bool , int , float 和 str , 以及包含这些类型数据的lists,tuples和dictionaries. 对于dictionar ...
- python json数组解析_Python读取JSON数据操作实例解析
问题 你想读写 JSON(JavaScript Object Notation) 编码格式的数据. 解决方案 json模块提供给了一种很简单的方式来编码和解码json数据,其中两个主要的函数时json ...
- python json文件操作_python对json的操作总结
引言 你一定听说过 JSON 吧.JSON 是当前最常用的数据传输格式之一,纯文本,容易使用,方便阅读,最重要的是在多个场合都被大量被使用. 既然 JSON 这么好,那就让我们继续探险,去掌握 pyt ...
- python -m json.tool 中文乱码 Format JSON with python
python -m json.tool 中文乱码 Format JSON with python 现在以 json 为数据传输格式的 RESTful 接口非常流行.为调试这样的接口,一个常用的办法是使 ...
- python字典与json转换_python字典与json转换的方法总结
在python中json分别由列表和字典组成,本文主要介绍python中字典与json相互转换的方法.使用json.dumps可以把字典转成json字符串.使用json.loads可以把json字符串 ...
- python读取与写入json+csv变成coco的json文件+安装labelme
一.python读取与输出json 1.python字典和json互转这里用json.dumps,还原则用json.loads,dumps以后就变为字符串了 import json# info = { ...
- python json是什么_python的json用法
一.json是什么 客户端向服务器端发送请求后,服务器端怎么才能把用户需要的数据返回给客户端呢.这时我们就需要用一个指定的格式将数据,按照指定格式返回客户端.这时就有了两种数据传输的方式(XML和Js ...
最新文章
- 深入了解Intel保护模式
- c语言会出现fullgc,以上述代码为基础,在发生过一次FullGC后,上述代码在He
- python简单的爬虫教程中召唤小海龟_Python练习,网络小爬虫(初级)
- JZOJ 5931. 【NOIP2018模拟10.27】冒泡排序
- node npm nrm nvm gnvm 相爱相杀
- excel合并计算_【Excel】合并计算和模拟分析的应用
- 前端学习(2638):读懂代码之登录页login.vue之ref和rules
- Win-MASM64汇编语言-通用寄存器AX/BX/CX/DX/SI/DI/BP
- python实现:用类实现一个图书馆,实现借书,入库,还书,查书,等功能,要求数据可以保存到文件中,退出后下次可以找回数据...
- 分享一个免杀的netcat.exe
- java并发编程(3)--线程 有序性 volatile
- 农产品SCM供应链协同系统解决方案
- GIS数据转换器(栅格)(栅格向矢量网格和栅格向栅格的转换)
- 流水线上的农民:我在工厂种蔬菜
- 直接插入法(C语言版本)
- 哈哈日语 日语五十音学记资料汇编
- google谷歌动态口令
- 编写一个程序。要求输入5个学生的成绩(从0到100的整数)并将这5个数保存到文件“data.txt”中,然后再编写一个程序,从文件“data.txt”中读取这5个学生的成绩,计算并输出他们的平均数,然
- Thymeleaf基本语法及使用方法
- 日常计算机网络英语对话,日常话题英语口语