我有以下代碼
def generate_matter(leaver_user,vaultAccessToken):
for user in leaver_user:
url = "https://vault.googleapis.com/v1/matters/"
headers = {
"Accept" : "application/json",
"Content-Type" : "application/json",
"Authorization": "Bearer " vaultAccessToken
}
body = json.dumps ({
"state": "OPEN",
"description": "Generated by Python",
"name": user "'s archive"
})
response = requests.request(
"POST",
url,
headers=headers,
data=body
)
jsonContent = json.loads(response.text)
matterID=jsonContent["matterId"]
#print("Matter ID for " user " is " matterID)
#print(jsonContent)
matter={
"matterInstance": {
"user": user,
"userInfo": {
"matterID": matterID
}
}
}
return matter
def generate_search_query(matter,leaver_user,vaultAccessToken):
print(matter)
for key, value in matter.items():
user=(matter['matterInstance']['user'])
matterID=(matter['matterInstance']['userInfo']['matterID'])
url = "https://vault.googleapis.com/v1/matters/" matterID "/savedQueries"
headers = {
"Accept" : "application/json",
"Content-Type" : "application/json",
"Authorization": "Bearer " vaultAccessToken
}
body=json.dumps({
"displayName": user "'s email search query",
"query": {
"corpus": "MAIL",
"dataScope": "ALL_DATA",
"searchMethod": "ACCOUNT",
"accountInfo": { "emails": [user]},
"mailOptions": {"excludeDrafts" : "false"},
"timeZone": "Atlantic/Canary",
"method": "ACCOUNT"
}}
)
response = requests.request(
"POST",
url,
headers=headers,
data=body
)
jsonContent = json.loads(response.text)
print(matterID)
print(body)
print(jsonContent)
savedQueryID=jsonContent["savedQueryId"]
print("savedQueryId for " user " is " savedQueryID " matterID is " matterID)
matter={
"matterInstance": {
"user": user,
"userInfo": {
"matterID": matterID,
"savedQueryID": savedQueryID
}
}
}
return matter
matter=generate_matter(leaver_user,vaultAccessToken)
savedQueryID=generate_search_query(matter,leaver_user,vaultAccessToken)
有效的是第一個函式 - generate_matter()。
這將回傳多個物質實體,例如
{'matterInstance': {'user': '[email protected]', 'userInfo': {'matterID': '12-34-56-78-91'}}}
{'matterInstance': {'user': '[email protected]', 'userInfo': {'matterID': '12-34-56-78-99'}}}
然而,函式 generate_search_query() 似乎只在第一個實體上執行。
我已經通過在 for 回圈執行之前在 generate_search_query() 中列印事件來確認這一點,并且只回傳第一個事件實體。
{'matterInstance': {'user': '[email protected]', 'userInfo': {'matterID': '12-34-56-78-91'}}}
添加以下評論作為其有用資訊。
generate_matter 的 for 回圈中的列印內容確實回傳了多個內容實體。
在呼叫savedQueryID=generate_search_query(matter,leaver_user,vaultAccessToken) 之前立即列印matter 只回傳一個matter 實體,所以這是我在函式外列印/呼叫它的時候
我將如何解決這個問題,以便在 generate_search_query() 的 for 回圈中執行多個事物實體?
謝謝
uj5u.com熱心網友回復:
最后generate_matter()你matter用最后一次迭代覆寫,然后回傳它,所以它只回傳一個元素。
為了解決這個問題,在開始創建串列generate_matter()(matterList = []),然后,你必須matter={...}在generate_matter()其替換matterList.append({...})。然后在函式的末尾回傳matterList而不是matter.
在generate_search_query()你需要在另一個包一切for通過串列回圈回圈。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/399151.html
