2011-04-01 16 views
7

मैं पाइथन लाइब्रेरी httplib2 के साथ खेल रहा हूं। निम्नलिखित मेरा कोड है।पायथन हॉस्पिटलप्लिब 2, एट्रिब्यूट एरर: 'सेट' ऑब्जेक्ट में कोई विशेषता नहीं है 'आइटम'

Microsoft Windows XP [Version 5.1.2600] 
(C) Copyright 1985-2001 Microsoft Corp. 

C:\>python --version 
Python 3.2 

C:\>python a.py 
Traceback (most recent call last): 
    File "a.py", line 32, in <module> 
    response, content = http.request(url, 'POST', urllib.parse.urlencode(body), headers=headers) 
    File "C:\Python32\lib\site-packages\httplib2\__init__.py", line 961, in request 
    headers = _normalize_headers(headers) 
    File "C:\Python32\lib\site-packages\httplib2\__init__.py", line 184, in _normalize_headers 
    return dict([ (key.lower(), NORMALIZE_SPACE.sub(value, ' ').strip()) for (key, value) in headers.items()]) 
AttributeError: 'set' object has no attribute 'items' 

C:\> 

अजगर को मैं बहुत नया हूँ कुछ भी मेरा कोड में गलत और httplib2,:

import urllib.parse 
import httplib2 

httplib2.debuglevel = 1 

http = httplib2.Http() 

url = "http://login.sina.com.cn/hd/signin.php" 
body = {"act": "1", 
     "entry": "vblog", 
     "password": "[email protected]$sW0rd", 
     "reference": "http://vupload.you.video.sina.com.cn/u.php?m=1&cate=0", 
     "reg_entry": "vblog", 
     "remLoginName": "on", 
     "username": "this_is_user_name", 
     "x": "", 
     "y": ""} 

headers = {"Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
      "Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7", 
      "Accept-Encoding", "gzip,deflate", 
      "Accept-Language", "en-us,en;q=0.5", 
      "Connection", "keep-alive", 
      "Content-Length", "181", 
      "Content-Type", "application/x-www-form-urlencoded", 
      "Host", "login.sina.com.cn", 
      "Keep-Alive", "115", 
      "Referer", "http://login.sina.com.cn/hd/signin.php?entry=vblog&r=http%3A%2F%2Fvupload.you.video.sina.com.cn%2Fu.php%3Fm%3D1%26cate%3D0", 
      "User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16"} 

response, content = http.request(url, 'POST', headers=headers, body=urllib.parse.urlencode(body)) 

जब मैंने इसे निष्पादित, मैं त्रुटि मिलती है?

धन्यवाद।

headers = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
      ...} 

नोट अल्पविराम के बजाय पेट:

+2

मेरी इच्छा है कि हर कोई अपनी त्रुटियों का पूरा पता लगाएगा - यह इतना समय बचाएगा! –

+0

हाय स्वेन, पूर्ण ट्रेसबैक कैसे प्राप्त करें? मैं पाइथन के लिए नया हूं और यह सुनिश्चित नहीं करता कि मैंने जो ट्रेस प्रदान किया है वह पूर्ण ट्रेसबैक है। –

+0

आपने * पूर्ण * ट्रेसबैक प्रदान किया, लेकिन अधिकांश लोग नहीं करते हैं। –

उत्तर

20

headers एक शब्दकोश, नहीं एक सेट होना चाहिए।

+1

ओह, मैं बहुत बेवकूफ हूँ !!! धन्यवाद! –

+0

मैंने भी यही गलती की है। धन्यवाद @ स्वेन – Marslo