Python-数据解析-json模块 !

import json

json 一种轻量级的数据交换格式。

一、JSON 的值

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null
{  "title": "JSON Example",  "nested": {    "someInteger": 7,    "someBoolean": true,    "someArray": Array[3][      "list of",      "fake strings",      "and fake keys"    ]  }}

二、json 模块

json 模块提供了 python 对象的序列化和反序列化功能。

  • 序列化:

将一个 python 对象编码转换为 json 字符串。

  • 反序列化:

将 json 字符串解码转换为 python 对象。

json 模块提供了4个方法:

  • dumps()
  • dump()
  • loads()
  • load()

其中 loads() 和 load() 方法用于 python 对象的反序列化,dumps() 和 dump() 方法用于 python 对象的序列化。

① json.loads()

把 json 格式字符串解码转换成 python 对象。

import json
str_list = "[1, 2, 3, 4]"str_dict = "{'city': '长沙', 'name': '数据云团'}"
json.loads(str_list)>>>[1, 2, 3, 4]
json.loads(str_dict)>>>{'city': '长沙', 'name': '数据云团'}

《Python-数据解析-json模块 !》
《Python-数据解析-json模块 !》

② json.dumps()

将 python 类型编码为 json 字符串,返回一个 str 对象。

《Python-数据解析-json模块 !》
《Python-数据解析-json模块 !》

import jsondemo_list = [1, 2, 3, 4]demo_tuple = (1, 2, 3, 4)demo_dict = {'city': '长沙', 'name': '数据云团'}
json.dumps(demo_list)>>>[1, 2, 3, 4]
json.dumps(demo_tuple)>>>[1, 2, 3, 4]# 注意:json.dumps() 处理中文时默认使用的 ASCII 编码,会导致中文无法正常显示# 记住:处理中文时,添加参数 ensure_ascii=False 来禁用 ASCII 编码print(json.dumps(demo_dict, ensure_ascii=False))

③ json.load()

读取文件中 json 形式的字符串元素,转化成 python 类型。

它与 json.loads() 方法的区别在于:

一个读取的是字符串;一个读取的是文件。

# 读取一个名为 listStr.json 和 dictStr.json 的文件内容import json
str_list = json.load(open("listStr.json"))print(str_list)
str_dict = json.load(open("dictStr.json"))print(str_dict)

④ json.dump()

将 python 内置类型序列化为 json 对象后写入文件。

它与 json.dumps() 方法的区别在于写入的是文件还是字符串。

import json
str_list = [{"city": "长沙"}, {"name": "数据云团"}]json.dump(str_list, open("listStr.json", "w"), ensure_ascii=False)
str_dict = {"city": "长沙", "name": "数据云团"}json.dump(str_dict, open("listStr.json", "w"), ensure_ascii=False)

    原文作者:萌新程序员
    原文地址: https://zhuanlan.zhihu.com/p/60885822
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞