Python处理Json数据

JSON是一种轻量级的数据交换格式,易于读写,也易于机器的解析。

使用Python处理JSON:

Python自己有json模块,用于将Python对象和json字符串进行相互的转换。

编码:
使用json.dumps()将Python队形编码转换成json字符串

>>> import json
>>> python_obj = [[1,2,3],123,123.123,'abc',{'key1':(1,2,3),'key2':(4,5,6)},True,False,None]
>>> json_str=json.dumps(python_obj)
>>> print json_str
[[1, 2, 3], 123, 123.123, "abc", {"key2": [4, 5, 6], "key1": [1, 2, 3]}, true, false, null]

可以看到在编码的过程中,Python原始类型会转化成json类型,转化表如下

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

这个编码方法还提供了很多参数:

>> python_obj2={"key2": [4, 5, 6], "key1": [1, 2, 3]}
>>> json_str2=json.dumps(python_obj2)
>>> json_str2=json.dumps(python_obj2,sort_keys=True,indent=2)    
>>> print json_str2
{
  "key1": [
    1, 
    2, 
    3
  ], 
  "key2": [
    4, 
    5, 
    6
  ]
}

这里sort_keys是用来对dict对象进行排序的,indent是用来格式化输出的。

解码:
使用json.loads()将JSON格式字符串解码,转换成Python对象。
这里将上面的编码例子再进行解码:

>>> print json.loads(json_str)
[[1, 2, 3], 123, 123.123, u'abc', {u'key2': [4, 5, 6], u'key1': [1, 2, 3]}, True, False, None]

这里会发现string类型的JSON数据转换成了Unicode类型。

使用参数让JSON数据格式化输出:

>>> import json
>>> print json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
{
    "a": "Runoob",
    "b": 7
}

猜你喜欢

转载自blog.csdn.net/qq_43355223/article/details/83863342
今日推荐