Json
来源:互联网 发布:日本战国时代知乎 编辑:程序博客网 时间:2024/06/18 17:16
一,Json的规格
"firstName": "John", "lastName": "Smith", "male": true, "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] }
python转成json数据格式定义
json转成python数据格式定义
parse_int=None, parse_constant=None, object_pairs_hook=None, **kw): """Deserialize ``fp`` (a ``.read()``-supporting file-like object containing a JSON document) to a Python object. """
parse_int=None, parse_constant=None, object_pairs_hook=None, **kw): """Deserialize ``s`` (a ``str`` or ``unicode`` instance containing a JSON document) to a Python object. """
"aa":"Json", "bb" : 1, "cc": "dd", "dd" : {"ss": 1}, "ee": [1,2,3,4]
{"bb" : 1} , {"cc": "dd"} , {"dd" : {"ss": 1}}, {"ee": [1,2,3,4]}
allow_nan=True, cls=None, indent=None, separators=None, encoding='utf-8', default=None, **kw): """Serialize ``obj`` as a JSON formatted stream to ``fp`` (a ``.write()``-supporting file-like object). """
allow_nan=True, cls=None, indent=None, separators=None, encoding='utf-8', default=None, **kw): """Serialize ``obj`` to a JSON formatted ``str``. """
1) 并列的数据之间用逗号(",")分隔。
2) 映射用冒号(":")表示。
3) 并列数据的集合(数组)用方括号("[]")表示。
4) 映射的集合(对象)用大括号("{}")表示。
json只有这四种格式规格
"北京市的面积为16800平方公里,常住人口1600万人。上海市的面积为6400平方公里,常住人口1800万。"
这句话写成json格式为
[
{"城市":"北京","面积":16800,"人口":1600},
{"城市":"上海","面积":6400,"人口":1800}
]
JSON用于描述数据结构,有以下形式存在。
对象 (object):一个对象以“{”开始,并以“}”退出。一个对象包含一系列非排序的名称/值对,每个名称/值对之间使用“,”分区。
名称/值(collection):名称和值之间使用“:”隔开,一般的形式是:
{name:value}
一个名称是一个字符串; 一个值可以是一个字符串,一个数值,一个对象,一个布林值,一个有串行表,或者一个null值。
值的有串行表(Array):一个或者多个值用“,”分区后,使用“[”,“]”括起来就形成了这样的列表,形如:
[collection, collection]
字符串:以""括起来的一串字符。
数值:一系列0-9的数字组合,可以为负数或者小数。还可以用“e”或者“E”表示为指数形式。
布林值:表示为 true 或者 false。
在很多语言中它被为和解释为数组。
JSON的格式描述可以参考RFC 4627。
[编辑]举例
{
二,格式转换
先对一个数据json编码,然后再将编码后的数据解码。照理说,解码后的数据应当和原先的数据一样,但是我们发现这里元组对象都被替换成列表对象了。这边就涉及到python和json互相转换的数据格式定义了。看下面两个图:
![json格式 json格式](http://www.01happy.com/wp-content/uploads/2012/11/python%E8%BD%AC%E6%88%90json%E6%95%B0%E6%8D%AE%E6%A0%BC%E5%BC%8F%E5%AE%9A%E4%B9%89.png)
![json格式 json转成python数据格式定义](http://www.01happy.com/wp-content/uploads/2012/11/json%E8%BD%AC%E6%88%90python%E6%95%B0%E6%8D%AE%E6%A0%BC%E5%BC%8F%E5%AE%9A%E4%B9%89.png)
从上面两个图可以看出python转换成json的时候,list、tuple都会转成array,而json转成python的时候,array就只转成list了
三,python中json的转换函数
1,json转换为python对象
def load(fp, encoding=None, cls=None, object_hook=None, parse_float=None,
json.load传入的是一个文件打开的句柄(fp),内部调用f.read()将一个符合json格式的文件读成字符串,之后转换为python的对象(默认的编码为unicode)
def loads(s, encoding=None, cls=None, object_hook=None, parse_float=None,
把符合json格式的字符串转化为python对象,可以是('{"a":"b"}'),也可是从文件中读出来的字符串
例如:
转换为python字典的json格式
{
}
转换为python的列表的json格式
[ "aa",
]
转化为json格式
def dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True,
json.dump需要两个参数,一个对象和一个打开文件的句柄,将json格式的对象写入句柄文件中
def dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True,
json.dumps只需一个参数,将符合json格式的对象转化为字符串
- Json
- JSON
- JSON
- JSON
- json
- JSON
- JSON
- json
- Json
- json
- JSON
- json
- json
- JSON
- json
- JSON
- JSON
- json
- 目录路径
- 快速升级已安装的 Android SDK 和 ADT 插件
- 删除关联档的资料 sql
- hadoop 设置文件权限--dfs.umask
- Linux USB鼠标驱动程序笔记 A
- Json
- 五 linux 下 安装软件
- 获取所有打开的窗口的标题
- 程序员必备的七大面向对象设计原则
- Java 实现复制U盘里的资料
- 项目管理之代码合并
- 关于hibernate封装session的讨论
- Android.mk 用法汇总
- SQLServer 2000 支持 2G 以上大内存设置