从零开始学python | 什么是Python JSON?

华为云开发者社区 2021-04-07 12:15:55
Python json 从零开始


摘要:您知道如何从在线API传输数据或将各种数据存储到本地计算机吗?您已经将自己沉浸于JSON的一种方式中,JSON表示Java Script Object Notation。它是一种著名的流行数据格式,用于表示半结构化数据。让我们详细了解Python JSON。

本文将讨论以下方面:

  • Python JSON简介
  • 如何在Python中读取JSON文件
  • 解析中
    • 从Python转换为JSON
    • 从JSON转换为Python
  • 熊猫解析JSON
  • JSON序列化[编码]
  • 漂亮的印刷
  • JSON的反序列化[解码]
  • 编码示范

Python JSON简介:

JSON代表JAVA小号script objectn浮选是存储在一个有组织的和容易的方式信息的方式。在浏览器和服务器之间交换数据时,数据必须为文本形式。

如果您想知道它是否是JavaScript?那么答案是否定的。它是一个由文本组成的脚本,用于以人类和机器可读格式存储和传输数据。它是一种受JavaScript启发的小型轻量数据格式,通常以文本或字符串格式使用。JSON数据包几乎等同于python字典。现在,您一定想知道。

如何在Python中读取JSON文件?

问题的答案是,您必须导入JSON模块,该模块通常将Python数据类型转换为JSON字符串文件。它由直接从JSON文件读取和写入的JSON函数组成。Python具有内置的JSON包,并且是标准库的一部分,因此您无需安装它。

例子:

import json

现在您已经了解了Python中的JSON,下面让我们更深入地分析Parsing。

解析:

JSON库可以从字符串或文件中解析JSON 。它还可以将JSON解析到Python字典或列表中,反之亦然。解析通常分为两个阶段:

  1. 从JSON转换为Python
  2. 从Python转换为JSON

让我们更好地了解这两个阶段。

从JSON转换为Python:

您可以使用以下方法将JSON字符串转换为Python json.loads(). :

例子:

import json
people_string = '''
{
"people":[
{
"emp_name": "John smith",
"emp_no.": "924367-567-23",
"emp_email": ["johnsmith@dummyemail.com"],
"has_license": "false"
},
{
"emp_name": "harshit kant",
"emp_number": "560-555-5153",
"emp_email": "null",
"has_license": "true"
}
]
}
'''
data = json.loads(people_string)
print(data)

输出:

从上面的输出中可以看到,它已经打印了Python字典。让我们打印数据类型以更好地理解。

例子:

import json
people_string = '''
{
"people":[
{
"emp_name": "John smith",
"emp_no.": "924367-567-23",
"emp_email": ["johnsmith@dummyemail.com"],
"has_license": "false"
},
{
"emp_name": "harshit kant",
"emp_number": "560-555-5153",
"emp_email": "null",
"has_license": "true"
}
]
}
'''
data = json.loads(people_string)
print(type(data)) #prints the datatype

输出:

<class'dict'>

现在,您已经熟悉一个转换,让我们在第二阶段看看另一种转换类型。

从Python转换为JSON:

通过使用json.dumps(). 下面给出的示例,可以将Python对象转换为JSON字符串:

例子:

import json
people_string = '''
{
"people":[
{
"emp_name": "John smith",
"emp_no.": "924367-567-23",
"emp_email": ["johnsmith@dummyemail.com"],
"has_license": "false"
},
{
"emp_name": "harshit kant",
"emp_no.": "560-555-5153",
"emp_email": "null",
"has_license": "true"
}
]
}
'''
data = json.loads(people_string)
new_string = json.dumps(data)
print(new_string)

输出:

输出将是JSON字符串类型。我已经在JSON到Python的转换中演示了数据类型,将遵循相同的过程来打印数据类型。

让我们继续前进,看看Pandas如何解析JSON。

熊猫解析JSON:

可以通过以下步骤将JSON字符串解析为pandas Dataframe:

  • 以下通用结构可用于将JSON字符串加载到DataFrame中
import pandas as pd
pd.read_json(r'Path where you saved the JSON fileFile Name.json')
  • 准备JSON字符串。
  • 创建一个我们正在使用的JSON文件nobel_prize.json。
  • 将JSON文件加载到pandas DataFrame中。

下面实现的代码将我的JSON文件加载到DataFrame中。

import pandas as pd
import json
with open(r'C:UsersHarshit_KantDesktopnobel.prize.json') as f:
data = json.load(f)
print (data)
df = pd.DataFrame
print(df)

输出:

继续前进,让我们看看如何在Python中序列化JSON。

JSON序列化[编码]:

序列化JSON只是意味着您正在编码JSON。它将给定的Python数据结构(ex:dict)转换为其有效的JSON对象。为了处理文件中的数据流,Python中的JSON库使用dump()和dumps()方法,该方法进行转换并使其易于将数据写入文件中。

下表是说明将Python数据类型转换为各自的JSON类型的表格。

要记住的要点:

dump() –将数据转换为JSON文件
dumps() –将数据转换为JSON字符串
load() –将JSON文件转换为Python对象
loads()–将JSON字符串的对象转换为Python对象

漂亮的印刷:

Pretty Printing负责代码对齐并使其以人类可读的格式进行。让我们看下面的示例,其中我传递了两个参数'sort_keys',这些参数始终返回布尔True值和'indent'空格。

例子:

import json
people_string = '''
{
"people":[
{
"emp_name": "John smith",
"emp_no.": "924367-567-23",
"emp_email": ["johnsmith@dummyemail.com"],
"has_license": "false"
},
{
"emp_name": "harshit kant",
"emp_no.": "560-555-5153",
"emp_email": "null",
"has_license": "true"
}
]
}
'''

data = json.loads(people_string)
new_string = json.dumps(data, sort_keys=True, indent=3)
print(new_string)

输出:

继续进行Python JSON教程,让我们了解JSON的反序列化。

JSON的反序列化[Decode]:

JSON的反序列化与序列化完全相反,也就是说,这意味着您正在解码JSON。它将通过使用执行转换的load()和load()方法将给定的JSON字符串转换为Python对象。

下表是说明将JSON数据类型转换为其相应的Python类型的表格。

继续进行“ Python JSON”教程。我将通过编码的角度向您展示一个同时进行序列化和反序列化的实时示例。

编码演示:

在此编码演示中,我将使用此处给出的JSON数据集,称为“诺贝尔奖” 。您将学习如何通过JSON文件进行序列化和反序列化。

示例(JSON数据集的序列化):

import json
with open('nobel_prize.json.html') as f:
data = json.load(f)
with open('new_nobel_prize.json.html') as f:
json.dump(data,f,indent=2)

输出:

Python代码已成功编译,并创建了一个新文件“ new_nobel_prize.json”,将从现有文件“ nobel_prize.json”中转储数据。

示例(JSON数据集的反序列化):

import json
with open('nobel_prize.json.html') as f:
data = json.load(f)
for nobel_prize in data['prizes']:
print(nobel_prize['year'],nobel_prize['category'])

输出:

该代码段显示了从JSON文件到其相应的Python对象的更改。

希望您对与JSON的解析,序列化和反序列化有关的所有概念感到清楚。

 本文分享自华为云社区《从零开始学python | 什么是Python JSON以及如何实现?》,原文作者:Yuchuan 。

 

点击关注,第一时间了解华为云新鲜技术~

版权声明
本文为[华为云开发者社区]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/huaweiyun/p/14627100.html

  1. Do you need to learn database to learn Python!
  2. Python描述 LeetCode 80. 删除有序数组中的重复项 II
  3. C++/python描述 AcWing 94. 递归实现排列型枚举
  4. C++/python描述 AcWing 92. 递归实现指数型枚举
  5. Python描述 LeetCode 88. 合并两个有序数组
  6. 苏州大学计算机考研 复试机试真题2013-2021真题及Python题解
  7. Python描述 LeetCode 781. 森林中的兔子
  8. 字典和json的区别是什么?Python学习
  9. Python describes leetcode 80. Removing duplicate items from ordered arrays II
  10. C + + / Python description acwing 94. Recursive implementation of permutation enumeration
  11. C + + / Python description acwing 92. Recursive implementation of exponential enumeration
  12. Python describes leetcode 88. Merging two ordered arrays
  13. Real computer test questions 2013-2021 of computer postgraduate entrance examination of Soochow University and python solutions
  14. The rabbit in the forest
  15. Python中的魔法属性
  16. What's the difference between dictionary and JSON? Python learning
  17. Magic properties in Python
  18. 字典和json的区别是什么?Python学习
  19. What's the difference between dictionary and JSON? Python learning
  20. python刷题-字母图形
  21. Python brush questions - letter graphics
  22. Python数据分析入门(七):Pandas层级索引
  23. Introduction to Python data analysis (7): Pandas hierarchical index
  24. Python 操作腾讯云短信(sms)详细教程
  25. Python operation Tencent cloud SMS (SMS) detailed tutorial
  26. Python数据可视化,完整版实操指南 !
  27. Python data visualization, full version of the practical guide!
  28. 上手Pandas,带你玩转数据(2)-- 使用pandas从多种文件中读取数据
  29. 上手Pandas,带你玩转数据(1)-- 实例详解pandas数据结构
  30. Using pandas to read data from various files
  31. Hands on pandas, take you to play with data (1) -- detailed explanation of pandas data structure with examples
  32. Pandas数据结构基础用法
  33. Basic usage of pandas data structure
  34. Python读取ini配置文件,保存到对象属性
  35. Python reads the INI configuration file and saves it to the object properties
  36. Foundation of Python: classes in Python
  37. python刷题-闰年判断
  38. python刷题-01字串
  39. How to judge leap year
  40. Python brush title-01 string
  41. 安装python
  42. 按尺寸切片pandas数据集DataFrame到多个文件
  43. Install Python
  44. Slice the pandas dataset dataframe to multiple files by size
  45. python 求最大值、最小值、平均值
  46. Finding maximum, minimum and average in Python
  47. 认识Python解释器和PyCharm编辑器
  48. Know Python interpreter and pycharm editor
  49. Python 小数据池和代码块缓存机制
  50. Python small data pool and code block caching mechanism
  51. python刷题-序列求和
  52. python刷题-圆的面积
  53. Sequence summation in Python
  54. The area of a circle
  55. Python functions, advanced syntax and usage
  56. Teach you to crawl novels in Python! Who can pay for novels these days!
  57. Python入门学习之:10分钟1500访问量
  58. Introduction to Python: 1500 visits in 10 minutes
  59. 数据分析之Pandas合并操作总结
  60. OpenCV-Python 雪花飘落特效