【问题标题】:How to find and iterate a list of value's in a JSON with Python [duplicate]如何使用 Python 在 JSON 中查找和迭代值列表 [重复]
【发布时间】:2019-10-26 00:50:07
【问题描述】:

上周我刚开始在工作中学习 Python。我正在尝试与我们的 HR 系统集成,并使用每个 API 将信息上传到 Okta(我们的 SSO 提供商)。

HR API 输出以下格式的 json 文件

{
    "isError": false,
    "Status": 0,
    "Message": "The request processed successfully.",
    "Result": [
        {
            "EmployeeId": {
                "DisplayValue": "004",
                "FieldHistory": []
            },
            "Title": {
                "DisplayValue": "",
                "FieldHistory": []
            },
            "FirstName": {
                "DisplayValue": "John",
                "FieldHistory": []
            },
            "LastName": {
                "DisplayValue": "Smith",
                "FieldHistory": []
            },
        }]
}

然后我想将它输入到一个名为 EmployeeID 的变量中,并将其放入我的代码中:

PHRPayload = {
  "APIKey": PHRAPI,
  "Action": PHRAction,
  "EmployeeId": EmployeeID,
  }

我想遍历 Result > EmployeeId > DisplayValue 并将它们打印到一个字典中,然后在我的代码的另一部分中遍历这些

OktaURL = "https://company.okta.com/api/v1/users/" + PHRPost.json()['Result']['EmailId']['DisplayValue']

【问题讨论】:

    标签: python api okta


    【解决方案1】:

    只需遍历结果:

    PHRAPI = 'yourCode'
    PHRAction = 'yourCode'
    data = {} #Your result from the api
    
    for res in data['Result']:
        EmployeeID = res['EmployeeId']['DisplayValue']
    
        #Call API and so on
        PHRPayload = {
            "APIKey": PHRAPI,
            "Action": PHRAction,
            "EmployeeId": EmployeeID,
         }
        #....
    

    【讨论】:

    • 我收到了一个TypeError: byte indices must be integers or slices, not str 错误。DisplayValue 是一个字符串,而不是一个整数。
    • 您是否已经将数据加载为 json?我还编辑了 for 循环
    猜你喜欢
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 2018-01-14
    • 2016-03-30
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 2021-01-21
    相关资源
    最近更新 更多