Python json
跳转到导航
跳转到搜索
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
JSON 函数
使用 JSON 函数需要导入 json 库:import json。
现实中用得多应该是restful 啦
json.dumps
函数 描述
json.dumps 将 Python 对象编码成 JSON 字符串
因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。
json.dumps 用于将 Python 对象编码成 JSON 字符串。
cat j.py
#!/usr/bin/python
import json
data = [ { 'a':1, 'b':2 , 'c':3}]
json = json.dumps(data)
print json
evan@kalipc:~/tmp$ python j.py
[{"a": 1, "c": 3, "b": 2}]
使用参数让 JSON 数据格式化输出
In [1]: import json
In [2]: print json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', '
...: : '))
{
"a": "Runoob",
"b": 7
}
如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数
json.dump()用于将dict类型的数据转成str,并写入到json文件中。下面两种方法都可以将数据写入json文件
import json
name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
emb_filename = ('/home/cqh/faceData/emb_json.json')
# solution 1
jsObj = json.dumps(name_emb)
with open(emb_filename, "w") as f:
f.write(jsObj)
f.close()
# solution 2
json.dump(name_emb, open(emb_filename, "w"))
dump eg
In [4]: import json
In [5]: test_dict = {'bigberg': [7600, {1: [['iPhone', 6300], ['Bike', 800], ['shirt'
...: , 300]]}]}
In [6]: print(test_dict)
{'bigberg': [7600, {1: [['iPhone', 6300], ['Bike', 800], ['shirt', 300]]}]}
In [7]: print(type(test_dict))
<type 'dict'>
In [8]: json_str = json.dumps(test_dict)
In [9]: print(json_str)
{"bigberg": [7600, {"1": [["iPhone", 6300], ["Bike", 800], ["shirt", 300]]}]}
In [10]: print(type(json_str))
<type 'str'>
myeg
In [40]: payload = {'some': 'data', 'a': 'av'}
In [41]: json.dumps(payload)
Out[41]: '{"a": "av", "some": "data"}'
python 原始类型向 json 类型的转化对照表:
Python JSON
dict object
list, tuple array
str, unicode string
int, long, float number
True true
False false
None null
json.loads
json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。
语法
json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])
实例
以下实例展示了Python 如何解码 JSON 对象:
#!/usr/bin/python
import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = json.loads(jsonData)
print text
以上代码执行结果为:
{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}
json 类型转换到 python 的类型对照表:
JSON Python
object dict
array list
string unicode
number (int) int, long
number (real) float
true True
false False
null None
see also
更多内容参考:https://docs.python.org/2/library/json.html。
使用第三方库:Demjson
https://docs.python.org/2/library/json.html