2017-04-20 132 views
0
url_a = """http://some.url/""" 
url_b = """http://some.url/'{}'/target""" 

a= requests.get(url_a) 
a_data = a.json() 
a_id = [i['id'] for i in a_data] 

b= requests.get(url_b.format(a_id[0])) 
b_data = b.json() 
print(b_data) 
{u'message': u"Unrecognized REST Request: GET/aps/2/resources/'%5C73d49684-dc10-4d6a-ae56-eb3816cd7064'%5C/subscriptions", u'error': u'APS::Util::Exception'} 
type(a_data) 
<type 'list'> 

URL A有一些以json格式獲取的數據,表示爲字典列表。我需要將關鍵「ID」的值填入URL B,但我無法做到。它將它作爲http://some.url/'12345'/目標用引號發送。如果我轉義引號,它仍然向API控制器發送字面轉義。 如果我不使用引號,它會返回空結果。python如何將列表中的值傳遞給url

如果它傳遞爲/ aps/2/resources/12345/subscriptions,那麼有效的結果是存在的,但是我無法弄清楚如何在python中表示它。

欣賞一些幫助。謝謝。

+1

使用'url_b = 「」 刪除單引號的 「http://some.url/ {} /目標」 「」'? –

+0

如果我這樣做,結果只是一個空的結果。但如果我運行該查詢,因爲它應該在python之外運行,我確實得到了實際結果。 – oj43085

+0

你是什麼意思?你已經明確地在你的字符串中加了引號,所以我不確定你爲什麼不期待它們在那裏,如果你刪除它們,它們不應該呆在那裏... –

回答

0
>>> s_data = s.json() 
>>> print(s_data) 
[] 
>>> f = i_ids[0] 
>>> print(f) 
73d49684-dc10-4d6a-ae56-eb3816cd7064 
>>> f = i_ids[1] 
>>> print(f) 
89c20244-331a-48c4-afea-3e23e72af768 
>>> s = requests.get(s_url.format(i_ids[1]), verify=False) 
>>> s_data = s.json() 
>>> print(s_data) 
>>> len(s_data) 
143 
>>> 

傢伙抱歉,是我剛剛從{}

感謝