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)
因為因為字符串datas_2中,雙引號在外圍,單引號在內嵌,導致轉換失敗
需要轉換的字符串需要注意,雙引號在外圍,單引號在內
解決方法:
將datas_2改成datas_1即可