Unicode - 字符串 - 列表操作
我有一个数据 s = u"[u'38', u'36', u'34', u'32']"
,其数据类型为 unicode 我想将此数据作为简单的元素列表,例如 s= ['38','36','32']
,
我尝试使用 simplejson.loads 但它不起作用简单的 json 使用 ('["s"]') 这种类型的字符串而不是 ("['s']") 所以任何朋友请指导我解决这个问题
提前致谢
I have a data s = u"[u'38', u'36', u'34', u'32']"
which has data type unicode
i want to make this data as simple list of element like s= ['38','36','32']
,
i try to use simplejson.loads but its not working simple json work with the ('["s"]') this type of string not ("['s']") so any buddy please guide me to get of this problem
thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果
ast
可用,您可以使用ast.literal_eval
。If
ast
is available, you can useast.literal_eval
.问题是该字符串不是有效的 JSON 语法。它是有效的 Python 语法,但不是 JSON,原因有二:
'38'
,仅支持双引号,“38”。
u"38"
之前添加 au,仅允许隐式 Unicode 的裸字符串"38"
。您需要更改输入格式,或者使用可以处理 Python 字符串的格式。
您可以使用 eval,它读取包含 Python 语法的字符串,但请注意,如果您接受任意输入,这是非常危险的,因为有人可以提供要执行的代码。尽管如此,它还是有效的:
编辑:khachik的答案可能比
eval
更好,因为它不容易评估任意Python代码,只能读取Python数据结构。Well the problem is that that string is not valid JSON syntax. It is valid Python syntax, but not JSON, for two reasons:
'38'
, only double-quote,"38"
.u"38"
, only bare strings which are implicitly Unicode,"38"
.You need to either change the input format, or use something which can process Python strings instead.
You could use
eval
, which reads strings containing Python syntax, but note that this is highly dangerous if you are accepting arbitrary input, since someone can supply code to execute. Nevertheless, it works:Edit: khachik's answer is probably better than
eval
, since it won't be susceptible to evaluating arbitrary Python code, only reading Python data structures.使用
re
模块将字符串拆分为所需的元素。例如Use
re
module to split your string into needed elements. For example