数据导入与预处理-第4章-Python标准库之json

简介: 数据导入与预处理-第4章-Python标准库之json

资源


参考:https://zhuanlan.zhihu.com/p/436465279

https://blog.csdn.net/impoijimlq/article/details/130445399


json概述


什么是json


json是一种轻量级的文本数据

交换格式json独立于其他语言

json具有自我描述性,更好理解

json比xml更小、更快,更容易解析


json格式

{
    "name":"lhh",
    "age":"20"
}


json标准库的作用


使用json字符串生成python对象(load)

由python对象格式成为json字符串(dump)


数据的类型转换


将数据从python转换到json格式,在数据类型上会有什么变化呢,如下表所示:


Python JSON
dict object
list,tuple array
str string
int,float,int- number
True true
False false
None null


使用方式


方法 功能
json.dump(obj,fp) 将python数据类型转换并保存到json格式的文件内
json.dumps(obj) 将python数据类型转换为json格式的字符串
json.load(obj) 将json格式的文件中读取数据并转换为python类型
json.loads(s) 将json格式的字符串转换为python的类型


json案例


dumps案例

import json
#从python对象格式化一个json  string
person = {"name":"张某某","gender":"man","age":25}
print(person)
#转换为json字符串
jsonStr = json.dumps(person,)
print(jsonStr)
#转换为json字符串 中文编码避免
jsonStr = json.dumps(person,ensure_ascii=False)
print(jsonStr)

输出为:

57eb1b7425f2e7dc2080e8296df10c89_224db3ba38574670b159d9e09271fc08.png


在python中定义json的时候,可以使用单引号,也可以使用双引号。但是最后在输出的时候,输出的是一个单引号,以字典的方式进行输出的。

我们进行json格式转换之后,我们就会变成一个标准的json格式的字符串,即双引号修饰的字符串

对于包含中文的内容,会被转码为\u开头,这时可以通过ensure_ascii=False完成中文输出。json_dumps(dict)时,如果dict包含有汉字,一定加上ensure_ascii=False。否则按参数默认值True,意思是保证dumps之后的结果里所有的字符都能够被ascii表示,汉字在ascii的字符集里面,因此经过dumps以后的str里,汉字会变成对应的unicode。


dump案例


中文编码问题

import json
#从python对象格式化一个json  string
person = {"name":"张某某","gender":"man","age":25}
print(person)
#转换为json文件
json.dump(person,open("data.json","w"))
#转换为json文件,文件内容为中文  
json.dump(person,open("data1.json","w",encoding="utf-8"),ensure_ascii=False)

输出为:

884dc3a4b4d8ed4c5a2958a977ef8ac0_fdbbc8a3a3e143249880250355558e95.png


格式化问题

import json
#从python对象格式化一个json  string
person = {"name":"张某某","gender":"man","age":25}
print(person)
#转换为json文件
json.dump(person,open("data.json","w"))
#转换为json文件,文件内容为中文  
json.dump(person,
          open("data1.json","w",encoding="utf-8"),
          ensure_ascii=False,
          indent=4)

输出为:

68181e9c7a3c7f2970a5a07e85ce6746_88babed13d8f46848391ce77e4c54200.png


import json
#从python对象格式化一个json  string
person = {"name":"张某某","gender":"man","age":25}
print(person)
#转换为json文件,文件内容为中文  
json.dump(person,
          open("data1.json","w",encoding="utf-8"),
          ensure_ascii=False,
          indent=4,
          sort_keys=True)

输出为:

71f257fe44061b41284bb19863286060_360aeee42dff463c961f62f03d20c18c.png


loads案例


import json
data = {'name':'张某某','gender':'man','age':18}
# 将Python对象编码成json字符串
# print(json.dumps(data))
# 将json字符串解码成Python对象
a = json.dumps(data)
print(json.loads(a))
print('+'*10)
data = (1,2,3,4)
data_json = [1,2,3,4]
#将Python对象编码成json字符串
print(json.dumps(data))
print(json.dumps(data_json))
print('+'*10)
#将Python对象编码成json字符串
a = json.dumps(data)
b = json.dumps(data_json)
print('+'*10)
#将json字符串编码成Python对象
print(json.loads(a))
print(json.loads(b))

输出为

56c0b2229c99b8a4edb7e644ff3fbec2_c1f10d7550d04699963ff118ef57019c.png


load案例

相关文章
|
1天前
|
调度 开发者 网络架构
探索Python中的异步编程:深入理解asyncio库
【9月更文挑战第32天】在现代软件开发中,异步编程已成为提升性能和响应性的关键策略之一。本文将深入探讨Python的asyncio库,一个强大的异步I/O框架,它允许开发者编写单线程并发代码,同时处理多个任务而无需复杂的多线程或多进程编程。通过本文,你将学习到如何利用asyncio来构建高效、可扩展的应用程序,并了解其背后的原理和设计哲学。
7 2
|
2天前
|
数据采集 数据挖掘 数据处理
Python中实现简单爬虫并处理数据
【9月更文挑战第31天】本文将引导读者理解如何通过Python创建一个简单的网络爬虫,并展示如何处理爬取的数据。我们将讨论爬虫的基本原理、使用requests和BeautifulSoup库进行网页抓取的方法,以及如何使用pandas对数据进行清洗和分析。文章旨在为初学者提供一个易于理解的实践指南,帮助他们快速掌握网络数据抓取的基本技能。
14 3
|
4天前
|
存储 索引 Python
python中的数据容器
python中的数据容器
|
4天前
|
数据挖掘 Python
【Python】应用:pyproj地理计算库应用
这篇博客介绍了 `pyproj` 地理计算库的应用,涵盖地理坐标系统转换与地图投影。通过示例代码展示了如何进行经纬度与UTM坐标的互转,并利用 `pyproj.Geod` 计算两点间的距离及方位角,助力地理数据分析。 安装 `pyproj`:`pip install pyproj`。更多内容欢迎关注本博客,一起学习进步! Pancake 🍰 不迷路。😉*★,°*:.☆( ̄▽ ̄)/$:*.°★* 😏
|
4天前
|
数据采集 存储 监控
如何使用 Python 爬取京东商品数据
如何使用 Python 爬取京东商品数据
15 0
|
5天前
|
数据挖掘 API 数据处理
Python 数据分析及预处理常用库
Python自身数据分析功能有限,需借助第三方库增强。常用库包括NumPy、pandas、Matplotlib等。NumPy由Numeric发展而来,提供了多维数组对象及各种API,支持高效的数据处理,如数学、逻辑运算等,常作为其他高级库如pandas和Matplotlib的依赖库。其内置函数处理速度极快,建议优先使用以提升程序效率。
7 0
|
5天前
|
数据挖掘 Python
Python数据挖掘编程基础8
在Python中,默认环境下并不会加载所有功能,需要手动导入库以增强功能。Python内置了诸多强大库,例如`math`库可用于复杂数学运算。导入库不仅限于`import 库名`,还可以通过别名简化调用,如`import math as m`;也可指定导入库中的特定函数,如`from math import exp as e`;甚至直接导入库中所有函数`from math import *`。但需注意,后者可能引发命名冲突。读者可通过`help('modules')`查看已安装模块。
11 0
|
5天前
|
人工智能 数据挖掘 Serverless
Python数据挖掘编程基础
函数式编程中的`reduce`函数用于对可迭代对象中的元素进行累积计算,不同于逐一遍历的`map`函数。例如,在Python3中,计算n的阶乘可以使用`reduce`(需从`funtools`库导入)实现,也可用循环命令完成。另一方面,`filter`函数则像一个过滤器,用于筛选列表中符合条件的元素,同样地功能也可以通过列表解析来实现。使用这些函数不仅使代码更加简洁,而且由于其内部循环机制,执行效率通常高于普通的`for`或`while`循环。
11 0
|
5天前
|
分布式计算 数据挖掘 Serverless
Python数据挖掘编程基础6
函数式编程(Functional Programming)是一种编程范型,它将计算机运算视为数学函数计算,避免程序状态及易变对象的影响。在Python中,函数式编程主要通过`lambda`、`map`、`reduce`、`filter`等函数实现。例如,对于列表`a=[5,6,7]`,可通过列表解析`b=[i+3 for i in a]`或`map`函数`b=map(lambda x:x+3, a)`实现元素加3的操作,两者输出均为`[8,9,10]`。尽管列表解析代码简洁,但其本质仍是for循环,在Python中效率较低;而`map`函数不仅功能相同,且执行效率更高。
6 0
|
5天前
|
XML JSON JavaScript
30天拿下Python之使用Json
30天拿下Python之使用Json

热门文章

最新文章

下一篇
无影云桌面