python str类型与json格式转换或者list格式转换
str转list:
import ast #####方法一##### datas = '{"carname":"豫EB7822","simid":"13579246811","equid":"3070614105","username":"燕子","userphone":"13579246811"}' list_datas_1 = eval(datas) print(type(list_datas_1)) #####方法二##### list_data_2 = ast.literal_eval(datas) print(type(list_data_2))
str转json:
import json datas = '{"carname":"豫EB7822","simid":"13579246811","equid":"3070614105","username":"燕子","userphone":"13579246811"}' dict_datas = json.loads(datas) print(type(dict_datas))
list转str:
#####方法一##### datas = '{"carname":"豫EB7822","simid":"13579246811","equid":"3070614105","username":"燕子","userphone":"13579246811"}' #引号中是字符之间的分割符 str_data_1 = ','.join(datas) print(type(str_data_1)) #####方法二##### #不会去除分隔符 str_data_2 = str(datas) print(type(str_data_2))
json转str:
import json datas = '{"carname":"豫EB7822","simid":"13579246811","equid":"3070614105","username":"燕子","userphone":"13579246811"}' dict_data = json.jumps(datas) print(type(dict_data))
可能遇到的问题
list转str时,使用方法一,如果list里面不是字符串类型时会报TypeError: sequence item 0: expected str instance, int found
解决方法:改成字符类型
str转json类型时
datas_1 = '{"carname":"豫EB7822","simid":"13579246811","equid":"3070614105","username":"燕子","userphone":"13579246811"}' datas_2 = "{'carname':'豫EB7822','simid':'13579246811','equid':'3070614105','username':'燕子','userphone':'13579246811'}" dict_1 = json.loads(datas_1) dict_2 = json.loads(datas_2) print(type(dict_1)) print(type(dict_2))
以上运行时会报错
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)