Ciao Gianni,
Il confronto però così è case sensitive, io proverei con:
...
            while unicode(feed.last_id).upper() != 
unicode(entry['link']).upper():
...

Adriano Barbieri

  ----- Original Message ----- 
  From: Gianni Di Noia 
  To: python@lists.python.it 
  Sent: Thursday, June 13, 2013 6:14 PM
  Subject: [Python] Comparare stringhe unicode


  Scusate, ho questa funzione che uso per popolare il DB di articoli presi da 
feed di vario tipo (atom, rss..) con l'aiuto di feedparser:


  def check_feed(feedk, e=0):
      feed = feedk.get()
      parsed = fetch_feed(feed.feed)
      if parsed:
          try:
              entry = parsed['items'][e]
              while unicode(feed.last_id) != unicode(entry['link']):
                  scrivineldb()
                  e += 1
                  entry = parsed['items'][e]
              feed.last_id = unicode(parsed['items'][0]['link'])
              feed.put()
          except:
              pass


  Oltre al try/except/pass che non mi piace ho un problema nel 'while' che ha 
il compito di scrivineldb() finché non raggiunge l'ultimo articolo del processo 
precendente (feed.last_id).


  Il problema è che anche quando "feed.last_id" e "entry['link']" sono uguali 
la funziona li identifica come diversi. Ho pensato che dipenda dalla codifica - 
che non conosco abbastanza - ma non riesco a risolvere:
  feed.last_id è una StringProperty di appengine che la documentazione dice 
essere unicode. Lo uso come un cursore, salvando l'ultimo "item" in modo che 
nel prossimo task la funzione si fermi quando lo raggiunge evitando duplicati.

  entry['link'] è anche una stringa unicode come dice la documentazione di 
feedparser ed è l'oggeto che comparo col 'cursore'.

  Entrambe sono degli url in unicode tipo: u'http://esempio.it/post/123'


  La comparazione nel while dovrebbe funzionare anche senza esplicitare l' 
unicode() ma niente continua a consumare risorse processando tutti gli articoli 
nel feed.


  idee..


------------------------------------------------------------------------------


  _______________________________________________
  Python mailing list
  Python@lists.python.it
  http://lists.python.it/mailman/listinfo/python
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a