为了账号安全,请及时绑定邮箱和手机立即绑定

处理字符串中的单引号

处理字符串中的单引号

翻阅古今 2022-06-14 10:56:30
我正在使用以 python 化列表格式返回字符串的二进制文件:例如:"['BONE'N'T','me & me',]\n"现在我想把它翻译成一个列表,但如果我使用 eval 或 ast.literal_eval 会失败Error:eval(s.strip("\n"))                                                                                                                                                                                  ***ERRORTRACEBACK***   File "<string>", line 1 ~     ['BONE'N'T','me & me',] ~            ^ ~ SyntaxError: invalid syntax ******************** ***ERROR*** <type 'exceptions.SyntaxError'> <type 'exceptions.SyntaxError'> invalid syntax (<string>, line 1) []我希望得到一个字符串列表,字符串完好无损。编辑:我设法修复它使用:清理列表:unsanitized_object_list.lstrip("[").rstrip(",]").split(",")然后清理列表中的每个元素: unsanitized_object_name.lstrip("'").rstrip("'")这是不优雅的,希望有一个更优雅的解决方案:-)
查看完整描述

2 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

这似乎是一个足够好的解决方案:

[token.strip('\'') for token in data.strip('\r\n[]').split(',')]


查看完整回答
反对 回复 2022-06-14
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

它失败了,因为您的示例不是 Python 列表的有效语法。如果'BONE'N'T'应该是单个列表项,则需要转义字符串内的引号。


>>> eval("['BONE\\'N\\'T','me & me',]")

["BONE'N'T", 'me & me']


查看完整回答
反对 回复 2022-06-14
  • 2 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信