python - json模块使用 / 快速入门
json基本格式
"""
json格式 -> [{}, {}]:
[{
"name": "Bob",
"gender": "male",
"Birthday": "1995-10-18"
},
{
"name": "Tom",
"gender": "female"
"Birthday": "1995-10-18"
}]
"""
在python中如何对json进行操作 (loads / dumps)
- loads() -> json字符串转列表类型
import json
str = '''
[{
"name": "Bob",
"gender": "male",
"Birthday": "1995-10-18"
},
{
"name": "Tom",
"gender": "female",
"Birthday": "1995-10-18"
}]
'''
# 将json字符串转换为python的列表
data = json.loads(str)
print(type(data)) # -> list
# 列表内部为字典类型
print(type(data[0])) # -> dict
'''
对于字典类型的获取:
(1). 直接索引
(2). 通过get()方法
推荐使用get()方法,因为即使检索不到相应的键值对不会报错,会返回None,同时还可以为(可能)不存在的键指定默认的值
'''
# print(data[0]["gender"]) -> 返回对应值
# print(data[0].get("gender")) -> 与上面返回值相同
# print(data[0].get("hobby", "sport")) -> 无对应值,返回默认值sport
# print(data[0]["hobby"]) -> 无对应值报错
- dumps() -> 列表转字符串
data = [{
'name': 'Zhao',
'gender': 'male',
'birthday': '1992-10-18'
}]
ts = json.dumps(data)
print(type(ts)) # -> str
Tip
使用dumps()方法时需要注意,当json中包含中文时,dumps()默认使用ascii对中文进行编码,当将json.dumps(data)直接输出到文件中时会显示中文的ascii编码
# 需要指定文件的输出编码
with open('data.json', 'w', encoding='utf-8') as f:
# 同时指定参数ensure_ascii=False
# indent=2是为了使得输出格式更美观
f.write(json.dumps(data, indent=2, ensure_ascii=False))
json作为字符串时,使用双引号!
# 使用单引号,抛出json.decoder.JSONDecodeError
tstr = '''
[{
'name': 'Bob',
'gender': 'male',
'Birthday': '1995-10-18'
}]
'''
print(json.loads(tstr))
python - json模块使用 / 快速入门的更多相关文章
- python json模块(15)
JSON 的全称是 JavaScript Object Notation,即 JavaScript 对象符号,它是一种轻量级.跨平台.跨语言的数据交换格式,其设计意图是把所有事情都用设计的字符串来表示 ...
- Spring第二篇【Core模块之快速入门、bean创建细节、创建对象】
前言 上篇Spring博文主要引出了为啥我们需要使用Spring框架,以及大致了解了Spring是分为六大模块的-.本博文主要讲解Spring的core模块! 搭建配置环境 引入jar包 本博文主要是 ...
- Python—json模块
用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps. ...
- Python: json模块实例详解
ref:https://www.jianshu.com/p/e29611244810 https://www.cnblogs.com/qq78292959/p/3467937.html https:/ ...
- python json模块使用详情
python其他知识目录 #json.数据交换用到json文件.json是特殊的字符串.访问网站,返回的就是json 1.json简介: 定义:JSON(JavaScript Object Notat ...
- python json模块 超级详解
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也 ...
- python: json模块 --JSON编码和解码
json 源代码: Lib/json/__init__.py json.dump() import json numbers = [1, 2, 3, 4] with open('linshi.py', ...
- python json模块小技巧
python的json模块通常用于与序列化数据,如 def get_user_info(user_id): res = {"user_id": 190013234,"ni ...
- Python中的单元测试模块Unittest快速入门
前言 为什么需要单元测试? 如果没有单元测试,我们会遇到这种情况:已有的健康运行的代码在经过改动之后,我们无法得知改动之后是否引入了Bug.如果有单元测试的话,只要单元测试全部通过,我们就可以保证没有 ...
随机推荐
- JIRA使用过程出现问题整理解答
转自:http://www.51testing.com/html/44/n-2820444.html 发表于:2015-5-28 10:22 作者:知乎 来源:51Testing软件测试网采编 ...
- ios APP上的自动化测试
1. 下载 http://blog.manbolo.com/2012/04/08/TestAutomation.zip%20 2. 开发工具安装:http://jingyan.baidu.com/ar ...
- codeforces 633F The Chocolate Spree (树形dp)
题目链接:http://codeforces.com/problemset/problem/633/F 题解:看起来很像是树形dp其实就是单纯的树上递归,就是挺难想到的. 显然要求最优解肯定是取最大的 ...
- Features Track 2018徐州icpc网络赛 思维
Morgana is learning computer vision, and he likes cats, too. One day he wants to find the cat moveme ...
- Orders POJ - 1731
The stores manager has sorted all kinds of goods in an alphabetical order of their labels. All the k ...
- odoo12从零开始:三、1)创建你的第一个应用模型(module)
前言 以前,我一直都不知道为什么好多框架的入门都是“hello world”开始,当我思前想后我要如何介绍odoo的model.record.template等继承等高级特性时,发现在那之前便需要清楚 ...
- ASP.NET Core 3.0 迁移避坑指南
一.前言 .NET Core 3.0将会在 .NET Conf 大会上正式发布,截止今日发布了9个预览版,改动也是不少,由于没有持续关注,今天将前面开源的动态WebApi项目迁移到.NET Core ...
- IDEA中工程上传到SVN
1.先在IDEA上集成SVN 2.查看SVN仓库:连接SVN ①此时应该先去SVN服务器中新建一个SVN服务: 点击下一步 点击下一步 点击create ②查看SVN仓库 先复制SVN的地址 把复制的 ...
- android中fragment与activity之间通信原理以及例子
参考文章 http://blog.csdn.net/guozh/article/details/25327685#comments Activity和fragment通信方式一般有3种方法 1.在fr ...
- Flink1.9整合Kafka
本文基于Flink1.9版本简述如何连接Kafka. 流式连接器 我们知道可以自己来开发Source 和 Sink ,但是一些比较基本的 Source 和 Sink 已经内置在 Flink 里. 预定 ...