代码之家  ›  专栏  ›  技术社区  ›  Jorge Guberte

我无法访问某些gdata联系人属性,如gender

  •  0
  • Jorge Guberte  · 技术社区  · 14 年前

    代码如下:

    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.
    

    我做错了什么,或者根本没做什么? 我在AppsAPI论坛上发布了同样的问题,只是为了澄清问题。

    编辑 以下是我要导入的内容:

    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.appengine
    
    import gdata.contacts
    import gdata.contacts.client
    import gdata.contacts.data
    import gdata.contacts.service
    import gdata.client
    import gdata.service
    import settings
    

    编辑2: 修正了qry输入错误后出现的错误:

    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'
    
    1 回复  |  直到 12 年前
        1
  •  6
  •   Vince Spicer    14 年前

    你可以试试v3客户端

    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