python字符转字典,python中怎么把字符串变成字典
比如字符串:
user_info={name : john ,性别 : 男性,年龄 : 28} 我们想把它转为下面的字典:
user_dict={ 姓名 : 约翰,性别 : 男性,年龄 : 28}有以下几种方法:
1、通过数据来转
导入数据
user_info={name : john ,性别 : 男性,年龄 : 28}
user_dict=json.loads(user_info)
用户_字典
{u 性别: u 男性,u 年龄: 28,u 姓名: u 约翰 }但是使用数据进行转换存在一个潜在的问题。
由数据语法规定数组或对象之中的字符串必须使用双引号,不能使用单引号(官网上有一段描述是字符串是零个或多个统一码字符得序列,用双引号括起来,使用反斜杠转义).因此下面的转换是错误的:
导入数据
user_info={name : john ,性别 : 男性,年龄 : 28}
# 由于字符串使用单引号,会导致运行出错
user_dict=json.loads(user_info)
回溯(最近呼叫):
模块中文件性病的第一行
文件/usr/local/Cellar/python/2。7 .11/框架/python。框架/版本/2.7/lib/python 2.7/JSON/_ _ init _ _ .py ,第339行,负载
return _ default _ decoder.decode
文件"/usr/local/Cellar/python/2。7 .11/框架/python。框架/版本/2.7/lib/python 2.7/JSON/解码器。py”,第364行,在译中
obj,end=self.raw_decode(s,idx=_w(s,0).end())
文件"/usr/local/Cellar/python/2。7 .11/框架/python。框架/版本/2.7/lib/python 2.7/JSON/解码器。py”,第380行,在原始解码中
obj,end=self.scan_once(s,idx)
值错误:需要属性名:第一行第2列(字符1)2,通过评价评价
user_info={name : john ,性别 : 男性,年龄 : 28}
user_dict=eval(user_info)
用户_字典
{ 性别 : 男性,年龄 : 28,姓名 : 约翰 }
user_info={name : john ,性别 : 男性,年龄 : 28}
user_dict=eval(user_info)
用户_字典
{ 性别 : 男性,年龄 : 28,姓名 : 约翰 }通过评价评价进行转换就不存在上面使用数据进行转换的问题。但是,使用评价评价却存在安全性的问题。
3、通过文字_评估
导入大西洋标准时间
用户={ 姓名 : 约翰,性别 : 男性,年龄 : 28}
user_dict=ast.literal_eval(用户)
用户_字典
{ 性别 : 男性,年龄 : 28,姓名 : 约翰 }
user_info={name : john ,性别 : 男性,年龄 : 28}
user_dict=ast.literal_eval(用户)
用户_字典
{ 性别 : 男性,年龄 : 28,姓名 : 约翰 }使用ast.literal_eval进行转换既不存在使用数据进行转换的问题,也不存在使用评价评价进行转换的安全性问题,因此推荐使用ast.literal_eval。
更多计算机编程语言相关技术文章,请访问计算机编程语言教程栏目进行学习!以上就是大蟒怎么把字符串变成字典的详细内容,更多请关注盛行信息技术软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。