`
Ydoing
  • 浏览: 106152 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Python之json模块

 
阅读更多

实际上JSON就是Python字典的字符串表示,但是字典作为一个复杂对象是无法直接传递,所以需要将其转换成字符串形式.转换的过程也是一种序列化过程.

用json.dumps序列化为json字符串格式

>>> import json
>>> dic {'Connection': ['keep-alive'], 'Host': ['127.0.0.1:5000'], 'Cache-Control': ['max-age=0']}
>>> jdict = json.dumps({'Connection': ['keep-alive'], 'Host': ['127.0.0.1:5000'], 'Cache-Control': ['max-age=0']})
>>> print jdict
{"Connection": ["keep-alive"], "Host": ["127.0.0.1:5000"], "Cache-Control": ["max-age=0"]}

虽然dic和jdict打印的字符串是相同的,但是实际它们的类型是不一样的.dic是字典类型,jdict是字符串类型

<type 'dict'>
>>> type(jdic)
>>> type(jdict)
<type 'str'>

可以用json.dumps序列化列表为json字符串格式

>>> list = [1, 4, 3, 2, 5] 
>>> jlist = json.dumps(list)
>>> print jlist
[1, 4, 3, 2, 5]

list和jlist类型同样是不一样的

>>> type(list)
<type 'list'>
>>> type(jlist)
<type 'str'>

json.dumps有如下多种参数

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

key排序

>>> print json.dumps({1:'a', 4:'b', 3:'c', 2:'d', 5:'f'},sort_keys=True)
{"1": "a", "2": "d", "3": "c", "4": "b", "5": "f"}

格式对齐

>>> print json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4)
{
    "4": 5, 
    "6": 7
}

指定分隔符

>>> json.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',',':'))
'[1,2,3,{"4":5,"6":7}]'

用json.dump序列化到文件对象中

>>> json.dump({'4': 5, '6': 7}, open('savejson.txt', 'w'))
>>> print open('savejson.txt').readlines()
['{"4": 5, "6": 7}']

json.dump参数和json.dumps类似

json.dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

json.loads把json字符串反序列化为python对象

函数签名为:

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

注意这里的”s”必须是字符串,反序列化后为unicode字符

>>> dobj = json.loads('{"name":"aaa", "age":18}')
>>> type(dobj)
<type 'dict'>
>>> print dobj
{u'age': 18, u'name': u'aaa'}

json.load从文件中反序列化为python对象

签名为:

json.load(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

实例:

>>> fobj = json.load(open('savejson.txt'))
>>> print fobj
{u'4': 5, u'6': 7}
>>> type(fobj)
<type 'dict'>
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    Python之json模块详解

    在python中,可以使用json模块对JSON数据进行编码和解码操作 json模块主要包含如下模块: (1)json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True,allow_nan=True, cls=None, indent=...

    python解析json的代码

    这个例子很可能展示了如何导入`json`模块,然后使用`json.loads()`函数将JSON格式的字符串解析成Python字典或列表。同时,因为描述中提到代码具有良好的逻辑结构和测试代码,所以可能包括了错误处理、不同类型数据的...

    详解python 3.6 安装json 模块(simplejson)

    JSON 相关概念: 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输...python2.6版本开始加入了JSON模块,python的json模块序列化与反序列化的过程分别是encoding和decoding。 encoding:把

    python:json转换

    JSON格式与Python的字典和列表结构有天然的对应关系,因此Python提供了内置的`json`模块来方便地进行JSON数据的编码和解码。在这个场景中,我们有两个Python脚本文件,`trans-json2.py`和`trans-json.py`,它们可能...

    python经典入门100例 + python操作json、xml、MySQL

    Python的`json`模块提供了方便的接口来编码和解码JSON数据。例如,你可以使用`json.loads()`将JSON字符串转换为Python对象,使用`json.dumps()`将Python对象转换为JSON字符串。这在处理Web API响应、存储配置文件或...

    python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了.pdf

    * Python 之 json 模块 * Python 之 pickle 模块 * Python 之 time 与 datetime 模块 * Python 之 random 模块 * os 模块 * sys 模块 * shutil 模块 * shelve 模块 * typing 模块 * 压缩 zipfile 与解压缩 tarfile ...

    python_json.7z

    首先,Python内置了`json`模块,它提供了方便的API来处理JSON数据。在描述中提到的`python_json.7z`压缩包里有两个文件:`test.json`和`json_demo.py`。`test.json`是一个包含JSON数据的文件,而`json_demo.py`是...

    将Python列表内容写入JSON文件并存储的两种方法

    在压缩包中的`test_json`文件可能就是一个通过上述方法之一创建的JSON文件,它存储了Python列表的内容。你可以通过读取这个文件,使用`json.load()`函数将其内容还原为Python列表,以便进一步处理或分析。 总结,...

    Python-json2csv实现将jsoncsv文件转换工具

    它依赖于Python内置的`json`模块来解析JSON数据,然后使用`pandas`库将数据写入CSV文件。`pandas`是Python数据处理的核心库,提供了强大的数据结构DataFrame,可以轻松地处理和操作表格型数据。 以下是一个基本的...

    python3 标准模块实例学习 原版

    5. `json`模块:用于JSON(JavaScript Object Notation)数据格式的编码和解码,常用于数据交换。 6. `re`模块:提供了正则表达式操作,用于字符串匹配和替换。 7. `urllib`家族:包含了多个子模块,用于处理URL...

    python&json移植至ARM

    总之,将Python和JSON支持移植到ARM平台涉及Python的交叉编译、依赖库的处理、安装和测试,以及了解如何在ARM设备上使用Python的json模块进行数据操作。这需要一定的系统级编程和嵌入式开发知识,但一旦完成,就可以...

    通过实例解析Python调用json模块

    本文将通过实例详细解析如何在Python中调用json模块进行数据的编码和解码。 首先,我们需要导入Python的json模块。在Python中,可以通过`import json`语句来引入这个模块,这样就可以使用其中提供的函数和方法了。 ...

    实现protobuf和json互相转换python3源码

    本主题关注的是在Python3环境中如何实现protobuf和JSON之间的互相转换。首先,我们需要安装`protobuf`库,可以通过pip进行安装: ```bash pip install protobuf ``` 在Python中,protobuf提供了`protoc`编译器来...

    Python json模块使用实例

    Python中的json模块是处理JSON数据的利器,它允许我们方便地进行JSON数据的序列化和反序列化。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在...

    Python处理JSON.doc

    Python从2.6版本开始内置了json模块,使得处理JSON数据变得十分方便。 **序列化与反序列化** 序列化是指将Python对象转化为JSON格式的字符串,以便于存储或在网络中传输。这个过程在Python中通过`json.dumps()`...

    python使用response.read()接收json数据的实例

    如下所示: import json result = response.read() ... 您可能感兴趣的文章:Python简单读取json文件功能示例Python使用内置json模块解析json格式数据的方法使用Python解析JSON数据的基本方法Python操作json数据的一个

    python读取json文件方法说明

    python读取json文件 要在Python中读取JSON文件,可以使用内置的json模块。json模块提供了一组函数和类,用于解析和处理JSON数据。

    Python使用内置json模块解析json格式数据的方法

    本文实例讲述了Python使用内置json模块解析json格式数据的方法。分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模块。 一、json字符串转为python...

    Python3 JSON 数据解析.pdf

    在Python3中,可以通过内置的`json`模块来处理JSON数据,实现数据的序列化(编码)和反序列化(解码)操作。 #### JSON与Python的数据类型对应关系 在处理JSON数据时,了解Python的基本数据类型与JSON数据类型的...

Global site tag (gtag.js) - Google Analytics