专栏首页python3Python 中 的 json 模块

Python 中 的 json 模块

python 中的json 模板主要的两个功能:序列化和反序列化 序列化: encoding   将python 数据 编码成json 字符串 对应的函数有 dump 和 dumps 反序列化: decoding  将json 字符串 解码成 python 数据 对应的函数有 load 和 loads

json 序列化 dumps 实例:

Base example

>>> import json
>>> data=['foo', {'bar': ('baz', None, 1.0, 2)}]
>>> print data
['foo', {'bar': ('baz', None, 1.0, 2)}]
>>> json_data=json.dumps(data)
>>> print json_data
["foo", {"bar": ["baz", null, 1.0, 2]}]
>>>

Compact encoding(压缩编码)

>>> import json
>>> data = [1,2,3,{'4': 5, '6': 7}]
>>> print data
[1, 2, 3, {'4': 5, '6': 7}]
>>> data_json = json.dumps(data)
>>> print data_json
[1, 2, 3, {"4": 5, "6": 7}]
>>> data_json2 = json.dumps(data,sort_keys=True)
>>> print data_json2
[1, 2, 3, {"4": 5, "6": 7}]
>>> data_json2 = json.dumps(data,sort_keys=True,separators=(',',':'))
>>> print data_json2
[1,2,3,{"4":5,"6":7}]

参数 separators 将 , 和 : 后门的空格剔除掉了。 separators 的值必须是一个 tuple 帮助中的英文注释: If specified, separators should be a (item_separator, key_separator) tuple. 

The default is (', ', ': ').  To get the most compact JSON representation you should specify (',', ':') to eliminate whitespace.

Pretty printing(一种格式化输出)

>>> data_json3 = json.dumps(data,sort_keys=True,indent=4,separators=(',',':'))
>>> print data_json3
[
    1,
    2,
    3,
    {
        "4":5,
        "6":7
    }
]

indent 会让每个键值对显示的时候,以缩进几个字符对齐。以方便查看 帮助中的英文注释: If indent is a non-negative integer, then JSON array elements and object members will be pretty-printed with that indent level.  An indent level of 0 will only insert newlines.None is the most compact representation.  Since the default item separator is ', ',  the output might include trailing whitespace when indent is specified.  You can use separators=(',', ': ') to avoid this.

josn 反序列化 loads 实例:

>>> obj = [u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
>>> str_json = '["foo", {"bar":["baz", null, 1.0, 2]}]'
>>> obj2 = json.loads(str_json)
>>> print obj2
[u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
>>> obj2 == obj
True

大数据处理: 以上不论时序列化的dumps 和 反序列化的loads 。所针对的数据都是一个json 字符串 或者时 一个python 的数据结构。那么当遇到了大量的json数据(如一个json 的配置文件) 或者 将一个python 的数据结构导出成一个json 的配置文件。

#! /usr/bin/env python
# _*_ encoding: utf-8 _*_

import json

# dump example
data = [{'lang':('python','java'),'school':"beijing"},"God"]
f = open('test.json','w+')
json.dump(data,f)
f.flush()
f.close()

# load example
fd = file("test.json")
js = json.load(fd)
print js

奇淫巧计:

python 的 json 结合 shell 输出

$ echo '{"json":"obj"}' | python -m json.tool
  {
       "json": "obj"
  }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python3操作json

    结论: 效果非常有意思。尤其是与《字符串转json》对比一下。如果仅仅看最后得出来的数据的话,根本是看不出来。

    py3study
  • Python爬虫爬取百度翻译之数据提取方法

    工具:Python 3.6.5、PyCharm开发工具、Windows 10 操作系统

    py3study
  • python解析与组装json

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3...

    py3study
  • [接口测试 - 基础篇] 04 无法绕过的json解析

    概述 我们先看一下什么是json。 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交...

    苦叶子
  • python接口自动化5-Json数据处理

    前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理。 一般常见的接口返回数据也是json格式的,我...

    上海-悠悠
  • python3操作json

    结论: 效果非常有意思。尤其是与《字符串转json》对比一下。如果仅仅看最后得出来的数据的话,根本是看不出来。

    py3study
  • 3分钟短文 | PHP咋判断字符串是标准JSON?这样写很高效

    在MYSQL 5.6及以下没有 JSON 这个字段类型的时候,我们还只能用字符串存储数组,对象,这些结构数据;甚至有直接将序列化的对象存库的,都是无奈之举。

    程序员小助手
  • python解析与组装json

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3...

    py3study
  • oracle mysql5.7 Json函数

    oracle mysql 5.7.8 之后增加了对json数据格式的函数处理,可更加灵活的在数据库中操作json数据,如可变属性、自定义表单等等都使用使用该方式...

    兜兜毛毛
  • json字符串和字典的区别

    json字符串和字典的区别: json: (JavaScript Object Notation)的首字母缩写,字面的意思是(javascript对象表示法...

    武军超

扫码关注云+社区

领取腾讯云代金券