首页 > 解决方案 > 如何过滤json元数据

问题描述

我想从云服务 SDK 返回的 JSON 数据中过滤一些指定的字段,但是我收到了一个错误,因为 JSON 数据的标头中总是有一个 http 元数据,如下所示:

{metadata:{connection:u'keep-alive',content_length:u'2603',content_type:u'application/json;charset=UTF-8',date:u'Sun, 16 Feb 2020 05:55:45 GMT',server:u'nginx/1.14.0',x_application_context:u'application:8688',bce_request_id:u'86ce3b78-a4f3-4615-92e8-67a907dc632e'},marker:u'',is_truncated:False,max_keys:1000,instances:[{id:u'i-vrXy1oLM',keypair_id:u'k-ks5ARhAr',keypair_name:u'auth01',name:u'jumpserver',instance_type:u'N3',status:u'Running',desc:u'',payment_timing:u'Prepaid',create_time:u'2019-10-21T14:18:36Z',expire_time:u'2020-02-21T14:18:36Z',internal_ip:u'192.168.32.15',public_ip:u'180.76.157.21',cpu_count:1,memory_capacity_in_gb:1,local_disk_size_in_gb:0,image_id:u'm-BvHMmUaH',placement_policy:u'default',subnet_id:u'sbn-76i4csq6v8di',vpc_id:u'vpc-7eie485jvchs',zone_name:u'cn-bj-c',dedicated_host_id:u'',ipv6:u'',nic_info:{eni_id:u'eni-rzhmtw183ffn',eni_uuid:u'4575d2e0-efad-4b28-a26e-6354b8a830a8',name:u'eth0',type:u'primary',subnet_id:u'c684327f-8b05-4d70-9a98-921fd13f0f83',subnet_type:u'BCC',az:u'zoneC',description:u'',device_id:u'92a6c971-f2d9-4349-ba00-304e305c70ff',status:u'inuse',mac_address:u'fa:16:3e:5b:15:6b',vpc_id:u'182534f9-9dcf-48ff-b0a8-ea5c8d3f2c14',created_time:u'2019-10-21T14:18:37Z',eni_num:0,ips:[{private_ip:u'192.168.32.15',eip:u'180.76.157.21',primary:u'true',eip_id:u'78674676686e6757697445777836624e714c2f4273513d3d',eip_allocation_id:u'ip-d8498451',eip_size:u'1',eip_status:u'binded',eip_group_id:u'',eip_type:u'normal'}],security_groups:[]},eni_num:u'0',tags:[{tag_key:u'默认项目',tag_value:u''}],network_capacity_in_mbps:1}, {id:u'i-7QOznBjw',keypair_id:u'k-ks5ARhAr',keypair_name:u'auth01',name:u'webinstance01',instance_type:u'N3',status:u'Running',desc:u'',payment_timing:u'Prepaid',create_time:u'2020-02-09T03:54:58Z',expire_time:u'2020-03-09T03:54:58Z',internal_ip:u'192.168.32.16',public_ip:u'180.76.239.226',cpu_count:2,memory_capacity_in_gb:2,local_disk_size_in_gb:0,image_id:u'm-kgPRuM8h',placement_policy:u'default',subnet_id:u'sbn-76i4csq6v8di',vpc_id:u'vpc-7eie485jvchs',zone_name:u'cn-bj-c',dedicated_host_id:u'',ipv6:u'',nic_info:{eni_id:u'eni-kjtwh5uutkgd',eni_uuid:u'd820a736-a4f7-4237-ad0a-ca3cd2c3634f',name:u'eth0',type:u'primary',subnet_id:u'c684327f-8b05-4d70-9a98-921fd13f0f83',subnet_type:u'BCC',az:u'zoneC',description:u'',device_id:u'9b9fc172-5943-4511-bad0-0a29e7658a1b',status:u'inuse',mac_address:u'fa:16:3e:11:70:1b',vpc_id:u'182534f9-9dcf-48ff-b0a8-ea5c8d3f2c14',created_time:u'2020-02-09T03:54:59Z',eni_num:0,ips:[{private_ip:u'192.168.32.16',eip:u'180.76.239.226',primary:u'true',eip_id:u'6b774645574d524468767a6266524155326f4a6e71413d3d',eip_allocation_id:u'ip-6b2b46be',eip_size:u'1',eip_status:u'binded',eip_group_id:u'',eip_type:u'normal'}],security_groups:[]},eni_num:u'0',tags:[{tag_key:u'默认项目',tag_value:u''}],network_capacity_in_mbps:1}]}

由于这个问题,我无法使用 json.loads() 解决 JSON 数据,有没有人可以告诉我该怎么做?我们的业务需求是调用 API 以获取所有实例信息,然后提取 VM instanceID 并执行下一项工作(批量管理等)。

json.decoder.JSONDecodeError:期望值:第 1 行第 1 列(字符 0)

标签: pythonjsonfilter

解决方案


推荐阅读