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)

  

posted @ 2024-04-22 11:25  cindylpp  阅读(282)  评论(0编辑  收藏  举报