python中列表、字典和字符串的互相转换
我们在python使用中经常会用到需要把字符串转为list或者字典,及把list或字典转为字符串(写文件,f.write()只能写字符串,插入数据库时,也只能用字符串)
具体使用方法总结了一下:
1、字符串转list
s = 'a,b,c' l = s.split(',') #把字符串s以逗号分割,分割出的list给到l
2、list转字符串
第一种方法:join
l1 = ['a', 'b', 'c'] str = ''.join(l1) #把list中的元素以空联合到一起,反回的字符串给到str str = 'abc' str1 = ','.join(l1) #把list中的元素以逗号联合到一起,反回的字符串给到str1 str1 = 'a,b,c'
第二种方法:json.dumps()
l1 = ['a', 'b', 'c'] str = json.dumps(l1) #把list直接转为字符串 str = '['a', 'b', 'c']'
3、字符串转字典
先import一个json模块
import json json_str = '{"name":"xiaohei","age":18}' dic = json.loads(json_str) # dic = {"name":"xiaohei","age":18}
4、字典转为字符串
同样先import一个json模块
import json d={"name":"xiaohei","age":18} json_str2 = json.dumps(d) #把字典、list转为字符串 json_str2 = '{"name":"xiaohei","age":18}'
5、dumps 中的两个参数 ensure_ascii 和 indent
d={"name":"xiaohei","age":18,"add":"北京市海淀区"} json_str2 = json.dumps(d,ensure_ascii = False,indent = 4) #ensure_ascii = False:字典中有中文的话,不把中文转译成ascii码,indent=4:格式化json,并缩进4位
扩展问题:
1、dump:把字典写到文件中
import json d = { "id": 314, "name": "矿泉水", "sex": "男", "age": 18, "addr": "北京市昌平区", "grade": "摩羯座", "phone": "18317155663", "gold": 405 } with open('lpp.json','w',encoding='utf-8') as f: json.dump(d,f,ensure_ascii=False,indent=4)
2、load:读文件,结果为字典格式
import json with open('aaa.json','r',encoding='utf-8') as f: resulut = json.load(f)