Как добавить несколько ответов в один объект json - PullRequest
0 голосов
/ 15 мая 2019

Я делаю запрос на другой сайт из моего фляги API. В основном моя фляга api - это прокси. Поэтому изначально я заменяю параметры известным идентификатором компании и получаю идентификатор всех работников. Учитывая идентификатор работника, я пытаюсь сделать еще один запрос, который помогает мне получить все их данные. Однако с кодом ниже я получаю только последний ответ, который означает только детали последнего работника. Вы можете игнорировать j == 1, пока я сделал это для целей тестирования.

tempDict={}
updateDic={}
dictToSend={}
 j=0
#i = companyid

#id=workerid

# I make several calls to url2 depending on the number of employee ids in number

for id in number:
    url2="someurl/" + str(i)+ "/contractors/"+str(id)
                r = requests.get(url2, headers={'Content-type': 'application/json',"Authorization":authenticate,'Accept': 'application/json'})
    print("id"+str(id))
    print(url2)

    loadJsonResponse2=json.loads(r.text)
    print(loadJsonResponse2)
    key = i


    tempDict.update(loadJsonResponse2)
    # I want to have all of their details and add the company number before            

    print(tempDict)

    if(j==1):
        dictToSend[key]=tempDict
        return jsonify(dictToSend)

    j=j+1





     return jsonify(dictToSend)


Итак, у меня есть все рабочие идентификаторы, и я прошу другой URL, чтобы получить все их данные. Ответ в формате JSON. Однако я получаю только последний ответ с кодом выше. Я сделал что-то вроде j==1, потому что хотел проверить возврат.

dictToSend[key]=tempDict
return jsonify(dictToSend)

Ключ - это идентификатор компании, чтобы я мог определить, из какой компании работает работник.

Как мне соединить все ответы json и в конце добавить ключ вроде "5":{concatenation of all json requests}

Спасибо,

1 Ответ

0 голосов
/ 15 мая 2019

Ваш ключ для объекта json:

#i = companyid
.
.
.
 key = i
.
.
.
# You are adding all your responses to companyid,
# better make a key with companyid and workerid
# key = str(companyid) + ":" + str(workerid)
dictToSend[key]=tempDict

А здесь

# you may not need this, since there is already a loop iterating on workerid
if(j==1):
    dictToSend[key]=tempDict
    return jsonify(dictToSend)

j=j+1

# then only useful line would be 
dictToSend[key]=tempDict
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...