Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从json中删除特定数据(多行)_Python_Json - Fatal编程技术网

Python 从json中删除特定数据(多行)

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', '

我正在提取一些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 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])