删除JSON数组嵌套标记

2024-03-29 09:26:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从JSON文件中提取数据。我能够从一些标记中提取数据,但是很少有嵌套的标记出现问题。以下是文件中的示例-

{"orders":[{
  "order_id":9000,
  "flight_start":"2017-06-15T05:00:00.000Z",
  "flight_end":"2017-06-22T05:00:00.000Z",
  "spots":[{
      "spot_id":7354259,
      "spot_length":15}],
  "constraints":{
      "forbid":[{
        "network":"BRVO"},
        {"network":"DSE"},
        {"network":"ESPN"},
        {"network":"DFC"},
        {"hours":[2,6],
         "days_of_week":["Monday","Tuesday","Thursday","Friday"]},
        {"hours":[2,6],
         "days_of_week":["Saturday","Sunday"]}],
      "allocation":[{
         "hours":[6,9],
         "impressions":{
             "min":0.05,
             "max":0.05},
         "days_of_week":["Monday","Tuesday","Wednesday","Thursday","Friday"]},{
         "hours":[20,0],
         "impressions":{"min":0.5,"max":0.5},
         "days_of_week":["Monday","Tuesday","Wednesday","Thursday","Friday"]},{
         "budget":{
             "min":1,
             "max":1},
         "spot_length":15}]}}]}

我无法从网络标签中刮取所有值,它只是从每个订单的所有网络标签中返回最高值。你知道吗

我正在使用以下代码-

 import urllib
 import json
 url = 'http://vw-test.elasticbeanstalk.com/test'
 json_obj = urllib.request.urlopen(url).read().decode('UTF-8')
 data = json.loads(json_obj)
 for i in data["orders"]:
     k = i["order_id"]
     j = i["flight_start"]
     l = i["flight_end"]
     m = i ['spots']
     for  value in m:    
         a = value["spot_length"]
         b = value["spot_id"]
     n = i["constraints"]
     c = n["forbid"]
     d = c[0]
     e = d["network"]
     print(e)

如果有人能帮我解决这个问题,我将非常感激。你知道吗


Tags: ofidjsonnetworkmindayslengthflight
1条回答
网友
1楼 · 发布于 2024-03-29 09:26:00

您问题中的json数据不完整。做一些假设,这可能会奏效:

for i in data["orders"]:
    k = i["order_id"]
    j = i["flight_start"]
    l = i["flight_end"]
    m = i ['spots']
    for  value in m:
        a = value["spot_length"]
        b = value["spot_id"]
    n = i["constraints"]
    c = n["forbid"]
    d = c[0]
    networks = [d["network"] for d in c if "network" in d]
    print(networks)

相关问题 更多 >