2017-09-25 411 views
1

這裏是我使用Python 3中的內容:如何在POSTMAN中放置多行單個字符串JSON?

payload={"query": """query 
     { 
      organization(login: "MY-ORG-ID") { 
      samlIdentityProvider { 
       externalIdentities(first: 10) { 
        edges { 
         node { 
         user {login} 
         samlIdentity {nameId} 
         scimIdentity {username} 
         } 
        } 
       } 
      } 
      } 
     }""" 
    } 

URL  = 'https://api.github.com/graphql' 
HEADERS = {'accept': 'application/vnd.github.v4.idl', 'authorization': 'bearer MY-GITHUB-TOKEN'} 
response = requests.post(url=URL, json=payload, headers=HEADERS) 

它只是正常工作。

但是,我想在POSTMAN工具中使用此查詢,但不知道如何做到這一點。我試圖刪除3雙引號""" """,我得到Unexpected 'q'錯誤。當我使用雙引號代替3雙引號和login: \"MY-ORG-ID\"時,出現"message": "Problems parsing JSON"錯誤。

標題和URL沒有問題。我只是在這裏給他們完整性。

回答

1

Python中的三引號表示多行字符串的權利?所以請嘗試使用雙引號,並且將整個查詢放在一行中?

{ 
    "query":"query{organization(login: \"MY-ORG-ID\") {samlIdentityProvider {externalIdentities(first: 10) {edges {node {user {login}samlIdentity {nameId}scimIdentity {username}}}}}}}" 
} 
+0

感謝您的回覆。它將所有這些行整合到一個。有沒有辦法使用多線? – Rafiq

+0

據我所知,這是不可能的。您可以嘗試添加\ n,但這些字符也會在查詢中發送。 – Ray

0

如果你想進入查詢到郵遞員應用程式POST請求的身體,快速的解決辦法,以實現多條線路是在你的身體一個環境變量的形式使用佔位符和在預先請求腳本輸入查詢:

在你的身體:

{ 
"query":{{query}} 
} 

在你預先請求腳本:

pm.environment.set("query", JSON.stringify(
    ` 
    query { 
     organization(login: "MY-ORG-ID") { 
      samlIdentityProvider { 
      externalIdentities(first: 10) { 
       edges { 
        node { 
         user {login} 
         samlIdentity {nameId} 
         scimIdentity {username} 
        } 
       } 
      } 
      } 
     } 
    } 
    ` 
)); 

請注意`在上面的代碼中是反引號,而不是單引號!

這不是有史以來最好的解決方案,但它是迄今爲止在郵差工作中唯一能夠避免在單行中輸入更復雜查詢/突變的工具。

希望這會有所幫助。

相關問題