【发布时间】:2016-01-24 23:07:25
【问题描述】:
基本上,如果我有一个像"a = 'abc' b = 'cde' c=13" 这样的字符串,我该如何将它解析成一个字典:
{'a': 'abc', 'b': 'cde', 'c': 13}
请注意,值可以是字符串文字或数字,并且字符串文字本身可以包含等号。字符串文字之外的空格是无关紧要的,里面的空格必须保留。不过,该字符串保证在 key=value key=value key=value 模式中交替出现。特殊字符可以并且将会出现在字符串文字中,但键将是纯字母字符。
【问题讨论】:
-
所以可能是
"a = 'abc' b = 'cde' c=13 d='asd=123'"? -
值可以包含空格吗? (
'abc def'是一个有效值)转义引号呢? ('abc\'def'有效) -
我猜两个单引号之间的任何东西都必须被视为一个值。但是 OP 应该真正定义有效输入的规则,以便更好地获得任何体面的答案。示例输入和预期输出的列表也很好
-
是的,引号内的任何内容都必须保留。这包括'='、'\''、''等。
-
@kelvinsong 你应该从那个描述开始。没有理由不能解析单个标签。如果它不起作用,那么这是关于 xml/html 解析器使用的另一个问题。在这种情况下,手工制作的解析器将不符合您的需求。对于这种情况,您还需要解析 xml 实体。
标签: python string-parsing