数据类型转换
要想进行数据类型转换,先知道数据类型再进行转换type(a),详见Python3 数据类型转换,转换为整型int(a),转换字符串str(a)。
aa=['x', {'vm':[{'name':'robot', 'host': 'compute01'},{}]}, 'z']获取指定虚机所在的主机
分解 ['x', 'y', 'z']为list,其中y为{'vm':[{},{}]}为dict字典,也就是从list列表aa中获取字典y然后从字典y中获取list列表最后在列表中再获取一个个字典,再从字典中获取key的值。
vm_list=aa[1]['vm']获取所有虚机list列表或者vm_list=aa[1].get('vm')
for vm_list_i in vm_list:
vm_name=vm_list_i['name']
if vm_name == 'robot':
vm_host=vm_list_i['host']
1) list有序的列表,可以随时添加和删除其中的元素。list列表中获取元素 a=['x', 'y', 'z'] len(a)获取元素的个数,a[0]获取列表第1个元素,通过索引访问每个位置的元素a[3]越界后报错IndexError: list index out of range,a[-1]获取最后一个元素。为确保索引越界,记得最后一个元素的索引为len(a)-1。list可变的有序表,追加元素到末尾a.append('u'),将元素插入list到指定位置a.insert(i, 'v'),删除list末尾元素a.pop(),删除指定位置的元素a.pop(i),某个元素替换成别的元素a[1]='w',list中嵌套list列表a=['x', 'y', ['x', 'y', 'z']]。
2) 另外一种有序列表叫元祖tuple,一旦初始化就不能修改。a=('x', 'y', 'z')没有list的append和insert这样的方法,其他元素的方法和list一样。
3) Python内置字典dict(dictionary),使用key-value存值。y={'aa':'dd', 'bb': 'cc'},获取某个key的值y['aa']或者y.get('aa');要删除一个key,用pop(key)方法,对应的value也会从dict中删除。
dict内部存放的顺序和key放入的顺序是没有关系的。和list比较,dict有以下几个特点:1) 查找和插入的速度极快,不会随着key的增加而变慢;2) 需要占用大量的内存,内存浪费多。而list相反:1) 查找和插入的时间随着元素的增加而增加;2) 占用空间小,浪费内存很少。所以dict是用空间来换取时间的一种方法。
4) 另外一种字典set,是一组key的集合,不存储value。由于key不能重复,所以在set中,没有重复的key。y={'aa', 'bb'},添加元素到set中add(key)方法,删除set中元素remove(key)方法。
str字符串和json互换
str转json,import json json.loads(a)
json转str,import json json.dumps(a)