I'm not being able to access some GData Contacts properties, such as gender
Here's the code:
def fetch_feed(self):
client = gdata.contacts.service.ContactsService()
client.ClientLogin(username, password) #Will change to AuthSub later.
query = gdata.contacts.service.ContactsQuery()
query.max_results = 3000
feed = client.GetContactsFeed(query.ToUri())
memcache.set('feed',feed, 3600)
return feed
feed = self.fetch_feed()
self.PrintFeed(feed)
def PrintFeed(self, feed):
for entry in feed.entry:
print entry.* #example... i can access properties such as entry.title, entry.id, entry.updated, but can't access a whole lot more.
What am i doing wrong, or what am i not doing at all? I posted the same question on the Apps API forum, just to clarify things.
EDIT Here's what i'm importing:
from google.appengine.api import memcache, users
from google.appengine.ext import db, webapp
from google.appengine.ext.webapp import util
import atom
import atom.url
import datetime
import gdata.alt.appe开发者_如何学Pythonngine
import gdata.contacts
import gdata.contacts.client
import gdata.contacts.data
import gdata.contacts.service
import gdata.client
import gdata.service
import settings
EDIT2: The error i got after fixing the qry typo:
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 511, in __call__
handler.get(*groups)
File "C:\etrebug\main.py", line 55, in get
feed = self.fetch_feed()
File "C:\etrebug\main.py", line 67, in fetch_feed
feed = client.get_contacts(qry)
File "C:\etrebug\gdata\contacts\client.py", line 194, in get_contacts
desired_class=desired_class, **kwargs)
File "C:\etrebug\gdata\client.py", line 635, in get_feed
**kwargs)
File "C:\etrebug\gdata\client.py", line 276, in request
version=get_xml_version(self.api_version))
File "C:\etrebug\atom\core.py", line 516, in parse
return _xml_element_from_tree(tree, target_class, version)
File "C:\etrebug\atom\core.py", line 525, in _xml_element_from_tree
if target_class._qname is None:
AttributeError: 'ContactsQuery' object has no attribute '_qname'
You can try the V3 client
client = gdata.contacts.client.ContactsClient()
client.client_login(usr, passwd, "myscript")
qry = gdata.contacts.client.ContactsQuery(max_results=3000)
feed = client.get_contacts(query=qry)
for entry in feed.entry:
# do something with entry
精彩评论