1. python存储Json格式的数据
import json
array = '{"drinks": ["coffee", "tea", "water"]}'
data = json.loads(array)
for element in data['drinks']:
print element
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
这个简单的例子体现了 json 中 array 数据类型的使用。我们知道,json array 数据类型的添加数据的功能是非常重要的,因为不可能array数据都在代码中事先声明好。所以,下一个例子我们看看如何将array数据添加到json array数据类型中。
2. json array中添加数据
import json
array = '{"drinks": ["coffee", "tea", "water"]}'
data = json.loads(array)
# print original josn array data
for element in data['drinks']:
print element
# add a new item to json array
data['drinks'].append("orange juice")
for element in data['drinks']:
print element
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
3. 我们制作一个简单的好玩的餐厅 Json 菜单
import json
# ini
person = '{"name": []}'
drinks = '{"liquid": []}'
# load json
person = json.loads(person)
drinks = json.loads(drinks)
# empty orders
for element in drinks['liquid']:
print element
for element in person['name']:
print element
# new orders
person['name'].append("Alice")
drinks['liquid'].append("Coffee")
person['name'].append("Bob")
drinks['liquid'].append("Tea")
person['name'].append("Joe")
drinks['liquid'].append("Orange juice, hot, please.")
# print orders
for element in person['name']:
print element
print '\n'
for element in drinks['liquid']:
print element
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
我们是怎么知道的 Alice 喝 Coffee,而不是 Tea 的呢?事实上,我们人为地将 json 中 person array 的 items 顺序地对应到 json 中 drinks array 的 items中,比如,person array 的第一个 item 对应到 drinks array 的第一个 item;person adday 的第二个 item 对应到 drinks array 的第二个 item;以此类推。
这说明了一个严重的问题:自动化的程度还是不够,还需要人为半手工地操作。下一个小例子,我们就来解决这一个问题。
4. 改进的餐厅 Json 菜单
import json
# ini
orders = '{"person": [], "drinks": []}'
# load json
orders = json.loads(orders)
# new oders
orders['person'].append("Alice")
orders['drinks'].append("Coffee")
orders['person'].append("Bob")
orders['drinks'].append("Tea")
orders['person'].append('Joe')
orders['drinks'].append('Orange juice, hot, please')
# print orders
for i in range(0, len(orders['person'])):
print 'person: ', orders['person'][i], ' drinks: ', orders['drinks'][i]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21