Python JSON 基本操作
阿新 • • 發佈:2019-02-01
Python version : 3.4.4
測試資料:
import json
aa = {"name": "kk", "age": 99 }
bb = [ {"name": "mm", "age": 10},{"name": "qq", "age": 20},{"name": "hh", "age": 50} ]
json模組提供的函式 json.dumps() 和 json.loads()
輸出:
>>> print(bb) [{'name': 'mm', 'age': 10}, {'name': 'qq', 'age': 20}, {'name': 'hh', 'age': 50}] >>> >>> data=json.dumps(bb) >>> print(data) [{"name": "mm", "age": 10}, {"name": "qq", "age": 20}, {"name": "hh", "age": 50}] >>> >>> load = json.loads(data) >>> print(load) [{'name': 'mm', 'age': 10}, {'name': 'qq', 'age': 20}, {'name': 'hh', 'age': 50}] >>>
排序:
>>> data = json.dumps(bb,sort_keys=True)
>>> print(data)
[{"age": 10, "name": "mm"}, {"age": 20, "name": "qq"}, {"age": 50, "name": "hh"}]
>>>
格式化輸出:
>>> data = json.dumps(bb,indent=4) >>> print(data) [ { "name": "mm", "age": 10 }, { "name": "qq", "age": 20 }, { "name": "hh", "age": 50 } ] >>>
輸出某行資料:
>>> print(bb[0])
{'name': 'mm', 'age': 10}
>>>
>>> print(bb[1])
{'name': 'qq', 'age': 20}
>>>
>>> print(bb[2])
{'name': 'hh', 'age': 50}
>>>
輸出某行資料某個值:
>>> print(bb[1]["name"]) qq >>> >>> print(bb[1]["age"]) 20 >>>
遍歷/迴圈 JSON :
>>> bb = [ {"name": "mm", "age": 10},{"name": "qq", "age": 20},{"name": "hh", "age": 50} ]
>>>
>>> for item in bb:
... print(item,item["name"])
...
{'name': 'mm', 'age': 10} mm
{'name': 'qq', 'age': 20} qq
{'name': 'hh', 'age': 50} hh
>>>
>>> for i in range(len(bb)):
... print(i,bb[i],bb[i]["name"])
...
0 {'name': 'mm', 'age': 10} mm
1 {'name': 'qq', 'age': 20} qq
2 {'name': 'hh', 'age': 50} hh
>>>
>>> for i,item in enumerate(bb):
... print(i,item,item["name"])
...
0 {'name': 'mm', 'age': 10} mm
1 {'name': 'qq', 'age': 20} qq
2 {'name': 'hh', 'age': 50} hh
>>>
>>> for item in bb:
... print("name=%s,age=%s,age=%f"%(item["name"],item["age"],item["age"]))
...
name=mm,age=10,age=10.000000
name=qq,age=20,age=20.000000
name=hh,age=50,age=50.000000
>>>
>>> for item in bb:
... print("My name is {0} ".format(item["name"]))
...
My name is mm
My name is qq
My name is hh
>>>
>>> for i,j in bb:
... print("name: {0}, age: {1}".format(i,j))
...
name: name, age: age
name: name, age: age
name: name, age: age
>>>
json 轉 python 資料格式定義:
+---------------+-------------------+
| JSON | Python |
+===============+===================+
| object | dict |
+---------------+-------------------+
| array | list |
+---------------+-------------------+
| string | str |
+---------------+-------------------+
| number (int) | int |
+---------------+-------------------+
| number (real) | float |
+---------------+-------------------+
| true | True |
+---------------+-------------------+
| false | False |
+---------------+-------------------+
| null | None |
+---------------+-------------------+
python 轉 json 資料格式定義:
+-------------------+---------------+
| Python | JSON |
+===================+===============+
| dict | object |
+-------------------+---------------+
| list, tuple | array |
+-------------------+---------------+
| str | string |
+-------------------+---------------+
| int, float | number |
+-------------------+---------------+
| True | true |
+-------------------+---------------+
| False | false |
+-------------------+---------------+
| None | null |
+-------------------+---------------+
help("json")