2016-06-02 2 views
0

Ich bin ein paar Monate in die Programmierung. Ich bin gerade dabei zu lernen, wie man bestimmte Dinge in einem Projekt automatisieren kann. Mein Ziel ist es Text, src zu kratzen, und href und speichert die Daten in meiner Website Datenbank, aber wenn ich versuche, bekomme ich diese FehlerWie kann ich den folgenden Fehler beheben AttributError: 'dict' Objekt hat kein Attribut 'text'

AttributeError: 'dict' object has no attribute 'text' 

aber es tut. Das ist mein Code. Ich habe eine Funktion

def get_world_too(): 
     url = 'http://www.example.com' 
     html = requests.get(url, headers=headers) 
     soup = BeautifulSoup(html.text, 'html5lib') 

     titles = soup.find_all('section', 'box')[:9] 
     entries = [{'href': box.a.get('href'), 
        'src': box.img.get('src'), 
        'text': box.strong.a.text, 
        'url': url 
        } for box in titles] 
     return entries 

dann habe ich diesen

def noindex(request): 
    world = get_world_too() 

    for entry in world: 
     post = Post() 
     post.title = entry.text 
     post.image_url = entry.src 
     # post.url = entry.url 
     # post.link = entry.href 
     # post.description = entry.description 
     # 
     # d = datetime.datetime(*(entry.published_parsed[0:6])) 
     # date_string = d.strftime('%Y-%m-%d %H:%M:%S') 
     # 
     # post.publication_date = date_string 
     post.save() 

     template = "blog/post/noindex.html" 
     context = { 

     } 
     return render(request, template, context) 

Ist nicht das Textattribut in meiner Funktion? Dann Wenn ich versuche, Text kommentieren Sie es sagt mir

AttributeError: 'dict' object has no attribute 'src' 

wie kann ich dieses Problem beheben, so dass die Daten, die ich ohne Fehler in meiner Datenbank gespeichert bekommen? Ich benutze Django, wenn das einen Unterschied macht.

Antwort

2

Sie haben wie dieses Wörterbuch Schlüssel zuzugreifen:

entry['text'] 
entry['src'] 

Nicht so

entry.text 
entry.src 
+0

warten auf die Zeit zu gehen, um zu akzeptieren – nothingness

0

In Python Sie nicht Wörterbuch Artikel mit der Syntax dict.key zugreifen können, Wenn der Eintrag ein Wörterbuch ist können Sie verwenden

  • entry['key1']
  • entry.get('key')
Verwandte Themen