
以下是我做的对于python中模块的demo
Python 3.3.2 (v3.3.2:d047928ae3f6,May 16 2013,00:03:43) [MSC v.1600 32, >>> ================================ RESTART ================================>>>
<a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>ON(<a href="https://m.jb51.cc/tag/JavaScript/" target="_blank" >JavaScript</a> Object Notation)是一种轻量级的数据交换<a href="https://m.jb51.cc/tag/geshi/" target="_blank" >格式</a>。易于人阅读和编写,同时也易于机器<a href="https://m.jb51.cc/tag/jiexi/" target="_blank" >解析</a>和<a href="https://www.jb51.cc/tag/shengcheng/" target="_blank" >生成</a>。在python中,<a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on模块<a href="https://m.jb51.cc/tag/tigong/" target="_blank" >提供</a>的dumps()<a href="https://www.jb51.cc/tag/fangfa/" target="_blank" >方法</a>可以对简单的数据<a href="https://m.jb51.cc/tag/jinxing/" target="_blank" >进行</a>编码:</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;"><a href="https://m.jb51.cc/tag/import/" target="_blank" >import</a></span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> <a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>onobj </span>= [[<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">a</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span>,<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">b</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span>,<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">c</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span>],1,3,4,<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">good</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span>,<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">boy</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span>,(88,42,<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">hongten</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span>),{<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;"><a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a></span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span> : <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">hongten</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">}]encoded<a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on </span>=<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> <a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on.dumps(obj)</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">print</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">(repr(obj))</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">print</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">(encoded<a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on)</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"><a href="https://www.jb51.cc/tag/shuchu/" target="_blank" >输出</a>:</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">[['a','b','c'],'good','boy','hongten'),{'<a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>': 'hongten'}]</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">[["a","b","c"],"good","boy",[88,"hongten"],{"<a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>": "hongten"}]</span><span >
objA
encodedJsonA =<span > Json.dumps(objA)
<span >print<span >(repr(objA))
<span >print<span >(encodedJsonA)
</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"><a href="https://www.jb51.cc/tag/shuchu/" target="_blank" >输出</a>:</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">[True,None]</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">[true,false,n<a href="https://m.jb51.cc/tag/ul/" target="_blank" >ul</a>l]</span><span >
在Json的编码过程中,会存在从python原始类型向Json类型的转换过程,具体的转换
如下:
python </span>--><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> <a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on dict object <a href="https://m.jb51.cc/tag/List/" target="_blank" >List</a>,tuple array str,unicode string int,long,<a href="https://m.jb51.cc/tag/float/" target="_blank" >float</a> number True true False false None n<a href="https://m.jb51.cc/tag/ul/" target="_blank" >ul</a>l<a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on转换为python数据类型:</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;"><a href="https://m.jb51.cc/tag/import/" target="_blank" >import</a></span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> <a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>ontestB </span>= <span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">hongten</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">dump_test </span>=<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> <a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on.dumps(testB)</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">print</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">(testB)</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">print</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">(dump_test)load_test </span>=<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> <a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on.loads(dump_test)</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">print</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">(load_test)</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"><a href="https://www.jb51.cc/tag/shuchu/" target="_blank" >输出</a>:</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">hongten</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">"hongten"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">hongten</span><span >
而Json转换为python类型的时候,调用的是Json.loads()方法,按照如下规则转换的:
<a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on </span>--><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> python object dict array <a href="https://m.jb51.cc/tag/List/" target="_blank" >List</a> string str number(int) int number(real) <a href="https://m.jb51.cc/tag/float/" target="_blank" >float</a> true True false False n<a href="https://m.jb51.cc/tag/ul/" target="_blank" >ul</a>l None<a href="https://m.jb51.cc/tag/paixu/" target="_blank" >排序</a><a href="https://www.jb51.cc/tag/gongneng/" target="_blank" >功能</a>使得存储的数据更加有利于观察,也使得对<a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on<a href="https://www.jb51.cc/tag/shuchu/" target="_blank" >输出</a>的对象<a href="https://m.jb51.cc/tag/jinxing/" target="_blank" >进行</a>比较:</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;"><a href="https://m.jb51.cc/tag/import/" target="_blank" >import</a></span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> <a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>ondata1 </span>= {<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">b</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span>:789,<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">c</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span>:456,<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">a</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span>:123<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">}data2 </span>= {<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">a</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span>:123,<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">b</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span>:789,<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">c</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #800000;">'</span>:456<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">}d1 </span>= <a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on.dumps(data1,sort_keys=<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">True)d2 </span>=<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;"> <a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on.dumps(data2)d3 </span>= <a href="https://m.jb51.cc/tag/Js/" target="_blank" >Js</a>on.dumps(data2,sort_keys=<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">True)</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">print</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">(d1)</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">print</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">(d2)</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">print</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">(d3)</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">print</span>(d1==<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">d2)</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #0000ff;">print</span>(d1==<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">d3)</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"><a href="https://www.jb51.cc/tag/shuchu/" target="_blank" >输出</a>:</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">{"a": 123,"b": 789,"c": 456}</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">{"a": 123,"c": 456,"b": 789}</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">{"a": 123,"c": 456}</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">False</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">True</span><span >
indent参数是缩进的意思:
testA = {<span >'<span >name<span >' : <span >'<span >hongten<span >'<span >,<span >'<span >age<span >' : <span >'<span >20<span >'<span >,<span >'<span >gender<span >' : <span >'<span >M<span >'<span >}
test_dump = Json.dumps(testA,sort_keys = True,indent = 4<span >)
<span >print<span >(test_dump)
</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"><a href="https://www.jb51.cc/tag/shuchu/" target="_blank" >输出</a>:</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">{</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> "age": "20",</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> "gender": "M",</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;"> "<a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>": "hongten"</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">#</span><span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #008000;">}</span><span >#<span >#################################################
[[<span >'<span >a<span >',{<span >'<span >name<span >': <span >'<span >hongten<span >'<span >}]
[[<span >"<span >a<span >",<span >"<span >b<span >",<span >"<span >c<span >"],<span >"<span >good<span >",<span >"<span >boy<span >",<span >"<span >hongten<span >"],{<span >"<span >name<span >": <span >"<span >hongten<span >"<span >}]
[True,None]
[true,null]
hongten
<span >"<span >hongten<span >"<span >
hongten
{<span >"<span >a<span >": 123,<span >"<span >b<span >": 789,<span >"<span >c<span >": 456<span >}
{<span >"<span >b<span >": 789,<span >"<span >c<span >": 456,<span >"<span >a<span >": 123<span >}
{<span >"<span >a<span >": 123,<span >"<span >c<span >": 456<span >}
False
True
{
<span >"<span >age<span >": <span >"<span >20<span >"<span >,<span >"<span >gender<span >": <span >"<span >M<span >"<span >,<span >"<span >name<span >": <span >"<span >hongten<span >"<span >
}
>>>
= Json python ( ( * 50 obj = [[,{ : encodedJson =