How to handle JSON using python

  今天花了点时间研究了一下怎么使用python处理json的文件。如下:

1. 使用模块 json  官方文档给出的是 2.6 新增加的特性

2. json的一些基本知识

数据使用key:value对形式出现,数据之间使用,分割。 数据可以是json的基本类型json文件的基本类型

对象  {}  json规定key必须是字符串格式的

数组   []

字符串 ""

逻辑值 true/false

数字    1  1.2

null

一个json的格式的例子:

{"students":[{"name":"zhangshan","age":15},{"name":"wangwu","age":18}]}

python 处理 json

import json

encodedjson = json.dumps(obj)  #将obj转化为python对象

decodejson = json.loads(encodedjson)  @将json转化为python

转化的时候遵循下面的转化规则:

从pythpn转化为json:

python      JSON
dict        object
list,tuple      array
str,unicode      string
int,long,float      number
True/False      true/false
None          null

从json转化为python:

JSON     Python
boject      dict
array       list
string      unicode
number(int)   int,long
number(real)  float

true/false    True/False

null        None

自定的对象和json的互转

import json

class Person():
    def __init__(self,name,age):
        self.name = name
        self.age = age

def object_to_dict(obj):
    d = {}
    d [‘__class__‘] = obj.__class__.__name__
    d[‘__module__‘] = obj.__module__
    d.update(obj.__dict__)
    return d

def dict_to_obj(d):
    if ‘__class__‘ in d:
        classname = d.pop(‘__class__‘)
        modulename = d.pop(‘__module__‘)
        module = __import__(modulename)
        _class = getattr(module,classname)
        para = [ ( k.encode(‘ascii‘) ,v) for k,v in d.items() ]
        obj = _class(*para)
        return obj
    else:
        return d

p = Person(‘zhuliang‘,‘25‘)
jaso_encode = json.dumps(p,default=object_to_dict)

print jaso_encode
obj = json.loads(jaso_encode,object_hook=dict_to_obj)
print obj
时间: 2024-10-04 13:14:58

How to handle JSON using python的相关文章

python http server handle json

用Python实现一个http server # python2 # coding = utf-8 from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler import json class RequestHandler(BaseHTTPRequestHandler): def _set_headers(self): self.send_response(200) self.send_header('Content-type',

【原】使用Json作为Python和C#混合编程时对象转换的中间文件

一.Python中自定义类对象json字符串化的步骤[1]   1. 用 json 或者simplejson 就可以: 2.定义转换函数: 3. 定义类 4. 生成对象 5.dumps执行,引入转换函数 特别说明,如果是python的内置对象,如列表,float,str等,不需要转换函数. 否则json模块默认是没法处理的,会抛出异常:TypeError xx is not JSON serializable   我的代码: 二.在Python中生成包含对象列表的Json字符串,并将其写入文件,

How can I pretty-print JSON in python?

python -m json.tool my_json.json 转自: http://stackoverflow.com/questions/352098/how-can-i-pretty-print-json

json与python解析

1.json.dumps     将 Python 对象编码成 JSON 字符串   json.loads      将已编码的 JSON 字符串解码为 Python 对象 2.json.dump()和json.load()主要用来读写json文件函数 json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=N

python json requests request 模块

1.json 通过Python的json模块,可以将字符串形式的json数据转化为字典,也可以将Python中的字典数据转化为字符串形式的json数据. 之前使用这个模块时,都是随用随查,浅尝辄止,对模块的功能了解不深. 随着使用次数的增加,我对这个功能完善的模块有了更多的了解,记录如下. json.loads 将字符串装换成python基本数据类型 json.dumps 将python数据类型转换成字符串方式返回 json a = {:} (a,(a)) c = json.dumps(a) (

Python 基础 - Day 4 Learning Note - 模块 - Json & Pickle

Json和Pickle的区别 在python的序列化的两个模块中,json模块是用于字符串和python数据类型间进行转换:另一个pickle模块,是用于python特有的类型(所有数据类型和python的数据类型间进行转换.json是可以在不同语言之间交换数据的,而pickle只在python之间使用.json只能序列化最基本的数据类型,json只能把常用的数据类型序列化(列表.字典.列表.字符串.数字.),比如日期格式.类对象!josn就不行了.而pickle可以序列化所有的数据类型,包括类

Python 中数据的序列化和反序列化(json处理)

概念: JSON(JavaScript Object Notation):是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等). 这些

python中的json模块

json模块 JSON就是JavaScript Object Notation,这个模块完成了python对象和JSON字符串的互相转换! json是一种很多语言支持的通用语言 作用:如下,作为一个桥梁 在api接口中数据调用传输中常用 php数据类型 <----> json格式  <--->  python java数据类型 <----> json格式  <----> python Mysql Text类型 <----> json格式  <

python对json的相关操作以及json模块的简要分析

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成. JSON有两种结构: 第一种就是"名称/值"对的集合.在python中相当于字典类型,在其他语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array). 第二种就是值的有序列表