Python对JSON数据的解析

1.python与json数据结构的对应情况

   

2.dumps:卸载,将json对象卸载为str

*sort_keys:排序

*indent:格式化

*ensure_ascii参数,想要输出中文时,要设置ensure_ascii=False

*skipkeys参数,在encoding过程中,dict对象的key只可以是string对象,如果是其他类型,那么在编码过程中就会抛出ValueError的异常。skipkeys可以跳过那些非string对象当作key的处理

def dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True,        allow_nan=True, cls=None, indent=None, separators=None,        default=None, sort_keys=False, **kw):    """Serialize ``obj`` to a JSON formatted ``str``.

# cached encoder    if (not skipkeys and ensure_ascii and        check_circular and allow_nan and        cls is None and indent is None and separators is None and        default is None and not sort_keys and not kw):        return _default_encoder.encode(obj)    if cls is None:        cls = JSONEncoder    return cls(        skipkeys=skipkeys, ensure_ascii=ensure_ascii,        check_circular=check_circular, allow_nan=allow_nan, indent=indent,        separators=separators, default=default, sort_keys=sort_keys,        **kw).encode(obj)

loads:装载,将str对象装载为json

def loads(s, encoding=None, cls=None, object_hook=None, parse_float=None,        parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):    """Deserialize ``s`` (a ``str`` instance containing a JSON    document) to a Python object.

if not isinstance(s, str):        raise TypeError(‘the JSON object must be str, not {!r}‘.format(                            s.__class__.__name__))    if s.startswith(u‘\ufeff‘):        raise ValueError("Unexpected UTF-8 BOM (decode using utf-8-sig)")    if (cls is None and object_hook is None and            parse_int is None and parse_float is None and            parse_constant is None and object_pairs_hook is None and not kw):        return _default_decoder.decode(s)    if cls is None:        cls = JSONDecoder    if object_hook is not None:        kw[‘object_hook‘] = object_hook    if object_pairs_hook is not None:        kw[‘object_pairs_hook‘] = object_pairs_hook    if parse_float is not None:        kw[‘parse_float‘] = parse_float    if parse_int is not None:        kw[‘parse_int‘] = parse_int    if parse_constant is not None:        kw[‘parse_constant‘] = parse_constant    return cls(**kw).decode(s)

demo:

import json
data = [
    {
        "school":"middle",
        "name":"smith",
        "age":22
    },
    "icecream",22,None,True, False,2.12,[4,31,"call"]
]
res = json.dumps(data)
dict_data = json.loads(res)

3.dump,load,文件操作

# 写入 JSON 数据
with open(‘data.json‘, ‘w‘) as f:
    json.dump(data, f)

# 读取数据
with open(‘data.json‘, ‘r‘) as f:
    data = json.load(f)

原文地址:https://www.cnblogs.com/SneakingSled/p/9629059.html

时间: 2024-08-09 22:50:01

Python对JSON数据的解析的相关文章

Python 获取接口数据,解析JSON,写入文件

Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而且python看起来更直观一些: 以下是代码: import types import urllib2 import json duan ="--------------------------" #在控制台断行区别的 #利用urllib2获取网络数据 def registerUrl():

python 处理 json 数据

1.通过json包处理json数据 import json #导入json包 json.dumps() # 将字典.列表转化为json格式的字符串 json.loads() #将json 格式的字符串转化为python 对象 json.dump(lt,open('json.txt','w',encoding='utf8')) #将lt 转化为json 格式的字符串写入到文件当中 json.load(open('json.txt','r',encoding='utf8')) #从文件中读取json

android通过httpClient请求获取JSON数据并且解析

android通过httpClient请求获取JSON数据并且解析:http://www.cnblogs.com/gzggyy/archive/2013/05/08/3066288.html Android--使用Http向服务器发送请求并取得返回结果,下载图片:http://www.2cto.com/kf/201307/229489.html Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据):http://blog.csdn.net/he

swift http请求返回json数据并解析

1 AppDelegate.swift // // AppDelegate.swift // QQDemo // // Created by 赵超 on 14-6-21. // Copyright (c) 2014年 赵超. All rights reserved. // import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? fun

iOS开发网络篇—JSON数据的解析

iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack", "rose", "jim

android中对json数据的解析,并在listview中实际运用

android中对json数据的解析,并在listview中现实,下面是数据{"ziparea": "410100.0", "enddate": "2015-04-03 00:00:00", "ecertarea": "\u9053\u8def\u8d27\u7269\u8fd0\u8f93\u9a7e\u9a76\u5458", "ecertstate": &quo

Android 之 json数据的解析(jsonReader)

json数据的解析相对而言,还是比较容易的,实现的代码也十分简单.这里用的是jsonReade方法来进行json数据解析. 1.在解析之前,大家需要知道什么是json数据. json数据存储的对象是无序的“名称/值”对的集合.和其他的数据存储方式相比,json数据的可读性,可扩展性,编码难度,解码难度都有一定的优势.在json数据中, 对于一个对象: (1)一个对象以“{”(左括号)开始,“}”(右括号)结束. (2)每个“名称”后跟一个“:”(冒号): (3)“‘名称/值’ 对”之间使用“,”

vim调用python格式化json数据

vim调用python格式化json数据 November 30, 2013GNU/Linuxpython3, Vimopenwares python有个标准模块叫json,用于编码/解码,序列化/按序列化json格式数据. 服务器返回的json数据是非格式化的,程序使用没问题,如果需要阅读则亚历山大. 可以使用vim调用python json模块提供的命令行工具json/tool.py格式化json文本. vim打开json数据,命令行模式下 :%!python3 -m json.tool %

Android 网络请求json数据,解析json数据,生成对应的java bean类一步到位,快速开发

Android 网络请求一般都涉及到图片和JSON数据,怎样快速的请求网络JSON数据,解析JSON数据,并且一步生成自己想要的Java bean实体类?这个涉及到Android 开发效率的问题.由于接触Android 网络这方面比较多,自然就找到一些好的方法来快速开发Android 网络模块的相关内容,接下来就为大家揭晓 一步快速请求,解析JSON 数据生成对应的Java bean实体类的方法. 注:我们先把思路讲解下吧: 1.网络请求JSON数据代码可以自己写,当然我还是推荐使用网络上开源的