【问题标题】:Add Key to top level of JSON file python将密钥添加到 JSON 文件 python 的顶层
【发布时间】:2021-04-07 03:57:52
【问题描述】:

我不知道为我的问题命名的正确方法,但它就是这样。 这是我当前的代码;为了敏感数据,我改成了假网址。

Site1 = 'testsite.com/data/api=028130u12'
Site2 = 'testsite.com/data/api=048843u78'
Site3 = 'testsite.com/data/api=930293u18'

URLs = [Site1,
        Site2,
        Site3]

json_list = []

for url in URLs:
    response = requests.get(url)
    data = response.json()
    json_list.append(data)

with open('data.json', 'w+') as f:
    json.dump(json_list, f, sort_keys=True, indent=4)

当我运行它时,我得到一个类似于下面的 Json 文件。我已经大大缩短了它,因为每个值都嵌套了 k,v[k,v[k,v]]。

[
  { 
     "emplPerf":
     "emplID":
     "emplList":
     "emplHours":
  },
  { 
     "emplPerf":
     "emplID":
     "emplList":
     "emplHours":
  },
  { 
     "emplPerf":
     "emplID":
     "emplList":
     "emplHours":
  }
]

我的问题是。如何更改 data.json 文件或在请求数据时执行此操作,以便在每个批处理块开始时添加从中获取数据的站点?

我想要什么;

[
  { 
    "Site1" : [{
        "emplPerf":
        "emplID":
        "emplList":
        "emplHours":
  }]},
  { 
    "Site2" : [{
       "emplPerf":
       "emplID":
       "emplList":
       "emplHours":
  }]},
  { 
     "Site3" : [{
       "emplPerf":
       "emplID":
       "emplList":
       "emplHours":
  }]}
]

请原谅任何格式错误。希望我正在尝试做的事情相当顺利。

【问题讨论】:

    标签: json python-3.x python-requests


    【解决方案1】:

    将您的json_list 转换为dict 类型并更改您的代码:

    json_list.append(data)
    

    到:

    if json_list.get(url):
        json_list[url].append(data)
    else:
        json_list[url] = [data]
    

    说明:

    如果url 不在json_list(键)中,则我们使用[data](包含data 的列表)值创建键url,否则我们将data 附加到json_list[url]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 2015-10-01
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多