Seite 1 von 2

Re: cURL REquest mit Python 2.7

Verfasst: Samstag 12. März 2016, 21:40
von andyritter
@Dav1d

Bei requests komme ich leider auch nicht weiter. Ich habe mir jetzt schon eine zweite CentOS7 Maschine eingerichtet, damit ich alle Zusatzmodule unter root einrichte und nicht unter meinem User.
Bei meinem Code
import requests

url = 'http://127.0.0.1:5000/v2.0/Liste'
header = {'X-Auth-Token: abcd'}

r= requests.get(url, headers=header)

r.json()
print(r)


erhalte ich folgende Meldung:

Traceback (most recent call last):
File "/home/andreas/Dokumente/tenants_list_requests.py", line 6, in <module>
r= requests.get(url, headers=header)
File "/usr/lib/python2.7/site-packages/requests-2.9.1-py2.7.egg/requests/api.py", line 67, in get
return request('get', url, params=params, **kwargs)
File "/usr/lib/python2.7/site-packages/requests-2.9.1-py2.7.egg/requests/api.py", line 53, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/site-packages/requests-2.9.1-py2.7.egg/requests/sessions.py", line 454, in request
prep = self.prepare_request(req)
File "/usr/lib/python2.7/site-packages/requests-2.9.1-py2.7.egg/requests/sessions.py", line 388, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File "/usr/lib/python2.7/site-packages/requests-2.9.1-py2.7.egg/requests/models.py", line 294, in prepare
self.prepare_headers(headers)
File "/usr/lib/python2.7/site-packages/requests-2.9.1-py2.7.egg/requests/models.py", line 405, in prepare_headers
self.headers = CaseInsensitiveDict((to_native_string(name), value) for name, value in headers.items())
AttributeError: 'set' object has no attribute 'items'


Was mache ich falsch?

Re: cURL REquest mit Python 2.7

Verfasst: Samstag 12. März 2016, 22:08
von pillmuncher
@andyritter: vergleich mal:

Code: Alles auswählen

>>> header = {'X-Auth-Token: abcd'}
>>> type(header)
<type 'set'>
>>> header['X-Auth-Token']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object has no attribute '__getitem__'
>>> header.items()                                                              
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'set' object has no attribute 'items'

Code: Alles auswählen

>>> header = {'X-Auth-Token': 'abcd'}
>>> type(header)                                                                
<type 'dict'>
>>> header['X-Auth-Token']                                                      
'abcd'
>>> header.items()
[('X-Auth-Token', 'abcd')]

Re: cURL REquest mit Python 2.7

Verfasst: Samstag 12. März 2016, 22:21
von andyritter
@pillmuncher
ich kann Dir da im Moment leider nicht folgen. Was möchtest Du mir damit denn erklären?

Im oberen Script wird versucht ein Set zu verwenden und im zweiten ein dictionary?

In der Dokumentation unter http://docs.python-requests.org/en/mast ... rs-in-urls finde ich nichts konkretes zu meinem Problem :-(

Re: cURL REquest mit Python 2.7

Verfasst: Samstag 12. März 2016, 22:31
von pillmuncher
@andyritter: Vergleich mal Zeichen für Zeichen:

Code: Alles auswählen

>>> header = {'X-Auth-Token: abcd'}
>>> header = {'X-Auth-Token': 'abcd'}

Re: cURL REquest mit Python 2.7

Verfasst: Samstag 12. März 2016, 22:32
von BlackJack
@andyritter: Wenn man ein Problem beim `header` hat, sollte man auch *dort* in der Dokumentation schauen und nicht bei der Übergabe von Daten: http://docs.python-requests.org/en/mast ... om-headers ;-)

Re: cURL REquest mit Python 2.7

Verfasst: Samstag 12. März 2016, 22:40
von andyritter
ok, danke Jungs, jetzt hab ich zumindest einen Response 200, :D Was so ein kleines ' alles ausmachen kann :oops:

jetzt stelle ich mir allerdings die Frage: Wie bekomme ich die Daten, die ich bei der Curl-Abfrage erhalte nun auch in Python? :K

Re: cURL REquest mit Python 2.7

Verfasst: Samstag 12. März 2016, 22:43
von andyritter
hab eben noch was entdeckt, und sehe nun auch die Antwort. Vielen Dank für eure Hilfe!!!
:)

Re: cURL REquest mit Python 2.7

Verfasst: Samstag 12. März 2016, 23:21
von Dav1d
@andyritter: Die Fehler die du machst passieren ¯\_(ツ)_/¯, mit der Zeit sieht man sofort was man falsch gemacht hat. Generell kann man aber schnell raus finden was falsch ist, wenn man sich den Traceback und die betreffende(n) Zeile(n) anschaut.
andyritter hat geschrieben:Sorry, ich möchte hier niemanden angreifen oder beleidigen.
Machst du nicht, solange du was lernen willst ist hier jede Frage willkommen.

Re: cURL REquest mit Python 2.7

Verfasst: Samstag 12. März 2016, 23:36
von andyritter
vielen Dank Dav1d.

Wünsche allen ein schönes Wochenende