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.如果有单元测试的话,只要单元测试全部通过,我们就可以保证没有 ...
随机推荐
- POJ - 1741 - Tree - 点分治 模板
POJ-1741 题意: 对于带权的一棵树,求树中距离不超过k的点的对数. 思路: 点分治的裸题. 将这棵树分成很多小的树,分治求解. #include <algorithm> #incl ...
- 原来JS是这样的 - 对象属性
引子 在上一篇(原来JS是这样的 (2))刚发布的时候就阅读了那篇文章的人可能会注意到那篇曾用过"JavaScript 中万物皆对象"的说法,而在随后我发现错误后立即更新改掉了这个 ...
- 阿里巴巴资深技术专家雷卷:值得开发者关注的 Java 8 后时代的语言特性
作者 | 阿里巴巴资深技术专家 雷卷,GitHub ID @linux-china 导读:在 Python.JavaScript 等一众编程语言崛起风靡之际,一代霸主 Java 风采虽不及当年,但仍 ...
- redis持久化的两种方式RDB和AOF
原文链接:http://www.cnblogs.com/tdws/p/5754706.html Redis的持久化过程中并不需要我们开发人员过多的参与,我们要做的是什么呢?除了深入了解RDB和AOF的 ...
- 单点登录(两种单点登录类型:SSO/CAS、相同一级域名的SSO)
单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再 ...
- Vue中的slot(占坑,预留位置)
Vue中的slot(占坑,预留位置) 子模板不使用slot 子模板使用slot 子模板使用使用name属性,且传递data 文件名:Slots.vue //slot组件 <template> ...
- OPENLDAP 服务搭建和后期管理
LDAP 服务 本文首发:https://www.cnblogs.com/somata/p/OPENLDAPServerConfigAndPostManagement.html 本文主要在debian ...
- .Net基础篇_学习笔记_第五天_流程控制do-while循环
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 【学习笔记】第三章 python3核心技术与实践--Jupyter Notebook
可能你已经知道,Python 在 14 年后的“崛起”,得益于机器学习和数学统计应用的兴起.那为什么 Python 如此适合数学统计和机器学习呢?作为“老司机”的我可以肯定地告诉你,Jupyter N ...
- STL迭代器
大部分ACM中使用的都是C/C++语言,但是说到C语言和C++语言的区别,却不知道. C++语言用于竞赛真的是非常方便的,里面有很多函数还有STL这个好东西,比C语言方便,比其他语言好理解. 在C语言 ...