美文网首页
使用json模块

使用json模块

作者: 转身丶即天涯 | 来源:发表于2019-07-21 22:37 被阅读0次

json模块是python内置的用于序列化的模块。


序列化和反序列化

序列化就是将python类型的数据结构转换为json格式的数据结构。转换成json结构一般是为了将数据传递给前端时的一种做法。这样的操作就叫做序列化。
反之,前端发送一个json格式的数据结构在后端被转换成python的数据结构的操作,叫做反序列化。


json.dump(obj, fp)

json.dump()会将obj对象序列化,并存入fp中。
obj即为python的数据结构(不支持set)。
fp为file对象,比如open('file_path', 'w')

import json

d = {
    "str": "ajdklsajldjs",
    "number": 7897,
    "list": ['abt', 'bef', 84973],
    "tuple": (1, 2, 3),
    # "set": {6, 7, 8},
    "dict": {'a': 1, 'b': 2}
}

json_d = json.dump(d, fp=open('my.json', 'w'))

上面的代码会将字典d写入当前目录下的my.json文件中,格式和d一样。
json.dump()函数的返回值为None。


json.dumps(obj)

json.dumps()函数和json.dump()函数功能一样,但是区别在于dumps()函数返回一个json字符串,而非写入文件。

import json

d = {
    "str": "ajdklsajldjs",
    "number": 7897,
    "list": ['abt', 'bef', 84973],
    "tuple": (1, 2, 3),
    # "set": {6, 7, 8},
    "dict": {'a': 1, 'b': 2}
}

json_d = json.dumps(d)
print(type(json_d))
print(json_d)
image.png

json.loads()

用于将json字符串反序列化为python数据结构。

import json

d = {
    "str": "ajdklsajldjs",
    "number": 7897,
    "list": ['abt', 'bef', 84973],
    "tuple": (1, 2, 3),
    # "set": {6, 7, 8},
    "dict": {'a': 1, 'b': 2}
}

json_d = json.dumps(d)

return_d = json.loads(json_d)
print(type(return_d))
print(return_d)
image.png

json.load(fp)

从.json文件中读取数据到python中, 参数fp是一个file对象,比如open('file_path', 'r')。

import json

from_json = json.load(open('my.json', 'r'))
print(type(from_json))
print(from_json)
image.png

格式化输出json字符串

有时,我们的json字符串可能会很长,所以,我们可以使用pprint()函数来格式化json字符串。
pprint(json_str)

合理使用indent参数

json.dumps(obj, indent=4)


image.png

注意:set是无法被序列化的

暂时不知道为什么无法被序列化?如果你知道的话可以在评论区评论,谢谢。

相关文章

  • py3笔记8:json结构的校验

    1. Json模块 python中使用json模块实现python对象与json的转换 json.dumps():...

  • Python学好了,飞机票你还买不到么?

    项目:机票数据采集 使用模块:requests(请求模块),js2py(js执行模块),json(解析json),...

  • 17.json、pickle、shelve模块

    一、json模块 1). json模块概述 json格式内容为字符串 json:前后端交互使用广泛的格式;配置文件...

  • Python学习笔记——JSON数据处理

    使用json模块处理JSON数据: loads(json_str)读取jsondumps() 生成json字符串 ...

  • python详解json模块

    我们在做工作中经常会使用到json模块,今天就简单介绍下json模块 什么是json JSON ,全称为JavaS...

  • 使用json模块

    json模块是python内置的用于序列化的模块。 序列化和反序列化 序列化就是将python类型的数据结构转换为...

  • nodejs中使用json

    nodejs中使用json 方法 使用fs 模块的readFile方法读取json文件内容import { rea...

  • jsonpath 模块对数据的操作记录

    jsonpath 模块对数据的操作记录 json模块主要处理json数据 页面上爬取的数据,需要使用 loads(...

  • Ruby 解析 json

    环境配置 在使用 Ruby 编码或解码 JSON 数据前,我们需要先安装 Ruby JSON 模块。在安装该模块前...

  • python 读写json数据

    6.2 读写json数据 使用json模块来读写json数据 其中json的dumps和loads函数就是借鉴了之...

网友评论

      本文标题:使用json模块

      本文链接:https://www.haomeiwen.com/subject/upfblctx.html