我有一个如下所示的字符串(它实际上是一个嵌套的json)
{“a”:“x”,“b”:1,“c”:“{”a”:“x”,“b”:1,“c”:“{”a”:“x”,“b”:1,“c”:“xa”}“}
我试图提取字符串的特定部分(粗体文本)。而且,“xa”可以是另一个嵌套的json对象。你知道吗
所以,条件总是我需要在第9次出现“(引号字符)之后直到最后一次出现”之前提取字符串的部分。你知道吗
我试过这个
newstr = '{"a":"x","b":1,"c":"{"a":"x","b":1,"c":"{"a":"x","b":1,"c":"xa"}"}"}'
newstr2=newstr.split('"')[9:]+newstr.rsplit('"')[1:]
newstr3 = ''.join(newstr2)
print(newstr3)
它给了我字符串中的子字符串,但是,由于我将字符串拆分为'''所有''''从整个字符串中删除。所以,我得到的结果是这样-{a:x,b:1,c:{a:x,b:1,c:xa}},我需要像-{“a”:“x”,“b”:1,“c”:“{”a”:“x”,“b”:1,“c”:“xa”}这样的子字符串,否则它将不是有效的json对象,我无法使用json.loads文件在绳子上。你知道吗
我记得以前在其他编程语言、VB甚至Oracle存储过程中这样做过,基本上我使用了substr和instr函数的组合。你知道如何在python中实现这一点吗?你知道吗
您有一个类似于字符串的JSON。我没有说JSON字符串,因为您的嵌套元素包含} 模块来实现您想要的。要将json字符串转换为dict/list,可以使用^{} 示例如下:
"{
和}"
,这使得JSON格式无效。为了将其转换为有效的JSON格式,需要分别用{
和}
替换它们。然后您可以使用^{如果您再次希望此数据为字符串格式,可以使用^{} 作为:
如果您真的需要自己处理这行代码(而不是使用专用库将其解析为JSON)@约汉·马里诺你可以尝试一些regular expressions好东西:
这里
[^"]
表示任何符号,但"
,{9}
表示正好9次,.
表示任何符号,*
表示零次或多次,括号用于标记组。你知道吗相关问题 更多 >
编程相关推荐