【发布时间】:2011-12-25 12:16:35
【问题描述】:
如果我有一个字符串,其中有一个像这样的有效 JSON 子字符串:
mystr = '100{"1":2, "3":4}312'
仅提取 JSON 字符串的最佳方法是什么?外面的数字可以是任何东西({ 或 } 除外),包括换行符和类似的东西。
明确一点,这就是我想要的结果
newStr = '{"1":2, "3":4}'
我能想到的最好方法是使用find 和rfind,然后获取子字符串。这对我来说似乎太冗长了,并且不符合 python 3.0(我更喜欢但不是必需的)
感谢任何帮助。
【问题讨论】:
-
find和rfind的哪些方面不符合 Python 3? -
为什么不使用正则表达式(带有 MULTILINE 标志)?
-
@devin:这并不意味着你认为它意味着什么。这些函数已从
string模块中删除,因为它们是多余的。内置的str类包括find和rfind,它们不被弃用。 docs.python.org/py3k/library/stdtypes.html#str.rfind