【Python 基础篇】Python中的数据交互格式json学习总结

一. 什么是JSON?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它是JavaScript的子集,易于人阅读和编写。前端和后端进行数据交互,其实就是JS和Python进行数据交互。

JSON格式,需要注意事项:

(1)名称必须用双引号(即:””)来包络;

(2)值可以是双引号包括的字符串、数字、true、false、null、JavaScript数组,或子对象;

二. Python数据类型与json数据类型的映射关系

Python 中的数据类型

JSON 数据格式中的数据类型描述

dict

object

list, tuple

array

str, unicode

string

int, long, float

number

True

true

False

false

None

null

{
  "obj": { # 对象
    "name": "xxx", # 字符串
    "address": {  # 子对象
      "country": "china",
      "city": "TianJin"
    }
  },
  "arr_simple": [1, 2, 3, 5], # 数组1
  "arr_complex": [  # 数组2
    1,   # 数字
    "a", # 字符串
    {
      "b": "yyy" 
    },
    true, # 布尔
    null  # null 类型
  ],
  "str": "I am a string", # 字符串
  "num": 888,  # 数字
  "booValue": false,
  "nullValue": null
}

三. JSON格式中的常用的方法

在使用json这个模块前,首先要导入json库:import json。

json.dumps()

json.dumps() 方法的作用就是将 python 对象转换成 JSON 字符串,下面来看具体的函数声明:

例子:

>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> print(json.dumps("\"foo\bar"))
"\"foo\bar"
>>> print(json.dumps('\u1234'))
"\u1234"
>>> print(json.dumps('\\'))
"\\"
>>> print(json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True))
{"a": 0, "b": 0, "c": 0}

json.dump()

json.dump() 函数的作用就是将 python 对象转换成 JSON 字符串,并将其通过 fp 文件流写入到文件中。来看下具体的函数声明:

>>> import json
>>> from io import StringIO
>>> io = StringIO()
>>> json.dump(['streaming API'], io)
>>> io.getvalue()
'["streaming API"]'

json.loads()

这个方法的作用就是将参数 s 按照上面的对照表反序列化为一个 python 对象。参数 s 可以是 str ,byte 或者byteArray 格式, 但必须要包含 JSON 文本才可以)。

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> import json
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads('"\\"foo\\bar"')
'"foo\x08ar'
>>> import decimal
>>> json.loads('1.1', parse_float=decimal.Decimal)
Decimal('1.1')

json.load()

先来看函数声明:

作用是将 fp 文件流反序列化为 python 对象,其中的参数意义和 loads 方法相同。来看一个例子。

>>> import json
>>> from io import StringIO
>>> io = StringIO('["streaming API"]')
>>> json.load(io)
['streaming API']

四. Python 生成JSON格式举例

import json
 
article_info = {}
data = json.loads(json.dumps(article_info))
 
data['article1'] = 'NONE'
 
article2 = {'title': 'python基础', 'publish_time': '2019-4-1', 'writer': {}}
data['article2'] = article2
 
writer = {'name': '李先生', 'sex': '男', 'email': 'xxx@gmail.com'}
data['article2']['writer'] = writer
 
article = json.dumps(data, ensure_ascii=False)
print(article)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值