假设我有一个字符串:
output='[{ "id":"b678792277461" ,"Responses":{"SUCCESS":{"sh xyz":"sh xyz\\n Name Age Height Weight\\n Ana \\u003c15 \\u003e 163 47\\n 43\\n DEB \\u003c23 \\u003e 155 \\n Grey \\u003c53 \\u003e 143 54\\n 63\\n Sch#"},"FAILURE":{},"BLACKLISTED":{}}}]'
这只是一个例子,但我有更长的输出,这是一个api调用的响应。
我想提取所有的名字(ana, dab, grey
)并放在一个单独的列表中。
我该怎么做?你知道吗
json_data = json.loads(output)
json_data = [{'id': 'b678792277461', 'Responses': {'SUCCESS': {'sh xyz': 'sh xyz\n Name Age Height Weight\n Ana <15 > 163 47\n 43\n DEB <23 > 155 \n Grey <53 > 143 54\n 63\n Sch#'}, 'FAILURE': {}, 'BLACKLISTED': {}}}]
1)我试过re.findall('\\n(.+)\\u',output)
但这不起作用,因为上面写着“不完整的u序列”
(二)
start = output.find('\\n')
end = output.find('\\u', start)
x=output[start:end]
但我不知道如何在循环中运行这段代码来提取名称
谢谢
\u
对象不是字母,因此无法匹配。它是Unicode序列的一部分。下面的正则表达式是有效的,但有点古怪。它寻找每一行的开头,除了第一行,直到第一个空格。你知道吗模式说明:
不幸的是,
"Name"
也被识别为一个名称。如果您知道它总是出现在第一行中,请对结果列表进行切片:我用regexr.com然后使用正则表达式,直到我得到正确的结果,然后将其转换为Python。你知道吗
https://regexr.com/
我假设\n是换行符,我敢打赌您的错误是由换行符引起的。要在Python中使用多行匹配,需要在编译时使用该标志。你知道吗
\n(.*)\n-这将是贪婪的,并获取尽可能多的匹配项(在本例中,它将获取从\n到\n的整个匹配项)
[{“id”:“678792277461”,“Responses”:{姓名年龄身高体重\n Ana\u00315\u003163 47\n 43\n Deb\u00323\u003155 60\n Grey\u00353\u003144 54\n}]
相关问题 更多 >
编程相关推荐