Python 从json中删除特定数据(多行)
我正在提取一些json数据,并试图从中提取特定的行/数据。我想我应该能够在这个场景中使用grep,我想知道是否可以得到一些帮助。以下是我所拥有的:Python 从json中删除特定数据(多行),python,json,Python,Json,我正在提取一些json数据,并试图从中提取特定的行/数据。我想我应该能够在这个场景中使用grep,我想知道是否可以得到一些帮助。以下是我所拥有的: [ 'vlans VLAN10 vlan-id 10', 'vlans VLAN100 vlan-id 100', 'vlans VLAN20 vlan-id 20', 'vlans VLAN30 vlan-id 30', 'vlans default vlan-id 1', 'vlans vlan111 vlan-id 111', '
[ 'vlans VLAN10 vlan-id 10',
'vlans VLAN100 vlan-id 100',
'vlans VLAN20 vlan-id 20',
'vlans VLAN30 vlan-id 30',
'vlans default vlan-id 1',
'vlans vlan111 vlan-id 111',
'vlans vlan222 vlan-id 222',]
以下是我尝试使用的内容:
config_json = results.json()
config_json_dumps = json.dumps(config_json)
pattern = 'vlan-id'
for vlans in config_json_dumps:
if re.search(pattern, vlans):
print(pattern)
但是我只得到一个代码为0的空白响应。request.json提供字符串列表,您不必将其转换为字符串。要检查线路是否有vlan id,不需要正则表达式
在您的示例中,所有线路都有“vlan id”,因此检查它似乎没有用
但若你们想在“VLANID”之后得到数字,那个么它就有意义了——而且它需要正则表达式
不要使用grep来处理JSON。使用一个专门的工具,jq。看起来你不明白JSON是什么。你有一个简单的列表,所以使用[x代表x,如果x代表“vlan id”,请参阅。这与正则表达式无关,事实上,这只是一个str.contains的例子。如果有人认为不起作用或给出错误,那么首先你可以使用print。。。和printtype…查看变量中的内容-称为打印调试-这应该表明变量vlan中有单个字符在示例中,所有行都有“vlan id”,检查它是无用的。如果您需要“vlan id”后面的数字,那么您需要ned regex“vlan id\d+”好的,我知道我做错了什么,并且我已经能够通过这里的所有示例来实现这一点。谢谢大家的帮助。
config_json = [
'vlans VLAN10 vlan-id 10',
'vlans VLAN100 vlan-id 100',
'vlans VLAN20 vlan-id 20',
'vlans VLAN30 vlan-id 30',
'vlans default vlan-id 1',
'vlans vlan111 vlan-id 111',
'vlans vlan222 vlan-id 222',
]
pattern = 'vlan-id'
for line in config_json:
if pattern in line:
print(line)
config_json = [
'vlans VLAN10 vlan-id 10',
'vlans VLAN100 vlan-id 100',
'vlans VLAN20 vlan-id 20',
'vlans VLAN30 vlan-id 30',
'vlans default vlan-id 1',
'vlans vlan111 vlan-id 111',
'vlans vlan222 vlan-id 222',
]
import re
for line in config_json:
result = re.search('vlan-id (\d+)', line)
if result:
print(result[1])