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)