cURL REquest mit Python 2.7

Code-Stücke können hier veröffentlicht werden.
andyritter
User
Beiträge: 29
Registriert: Montag 7. März 2016, 16:27

@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?
Benutzeravatar
pillmuncher
User
Beiträge: 1482
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@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')]
In specifications, Murphy's Law supersedes Ohm's.
andyritter
User
Beiträge: 29
Registriert: Montag 7. März 2016, 16:27

@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 :-(
Benutzeravatar
pillmuncher
User
Beiträge: 1482
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@andyritter: Vergleich mal Zeichen für Zeichen:

Code: Alles auswählen

>>> header = {'X-Auth-Token: abcd'}
>>> header = {'X-Auth-Token': 'abcd'}
In specifications, Murphy's Law supersedes Ohm's.
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 ;-)
andyritter
User
Beiträge: 29
Registriert: Montag 7. März 2016, 16:27

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
andyritter
User
Beiträge: 29
Registriert: Montag 7. März 2016, 16:27

hab eben noch was entdeckt, und sehe nun auch die Antwort. Vielen Dank für eure Hilfe!!!
:)
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

@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.
the more they change the more they stay the same
andyritter
User
Beiträge: 29
Registriert: Montag 7. März 2016, 16:27

vielen Dank Dav1d.

Wünsche allen ein schönes Wochenende
Antworten