2014-11-04 87 views
0

我使用Python的GDATA读取特定工作的公共电子表格中的行,当我试图将以下代码如何在python

client = gdata.spreadsheet.service.SpreadsheetsService() 
    key = 'xxxxxxxxxxxxxxxxxxxxxxxxxx' 
    worksheets_feed = client.GetWorksheetsFeed(key, visibility='public', projection='values') 
    # print worksheets_feed 
    for entry in worksheets_feed.entry: 
     print entry.title.text 
     worksheet_id = entry.id.text.rsplit('/',1)[1] 
     rows = client.GetListFeed(key, worksheet_id).entry 

收到错误使用GDATA获得公共电子表格中的特定工作表中的行作为

Traceback (most recent call last): 

    File "lib/scrapper.py", line 89, in <module> 

    start_it() 

    File "lib/scrapper.py", line 56, in start_it 

    rows = client.GetListFeed(key, worksheet_id).entry 

    File "/Library/Python/2.7/site-packages/gdata/spreadsheet/service.py", line 252, in GetListFeed 

    converter=gdata.spreadsheet.SpreadsheetsListFeedFromString) 

    File "/Library/Python/2.7/site-packages/gdata/service.py", line 1074, in Get 

    return converter(result_body) 

    File "/Library/Python/2.7/site-packages/gdata/spreadsheet/__init__.py", line 474, in SpreadsheetsListFeedFromString 

    xml_string) 

    File "/Library/Python/2.7/site-packages/atom/__init__.py", line 93, in optional_warn_function 

    return f(*args, **kwargs) 

    File "/Library/Python/2.7/site-packages/atom/__init__.py", line 127, in CreateClassFromXMLString 

    tree = ElementTree.fromstring(xml_string) 

    File "<string>", line 125, in XML 

cElementTree.ParseError: no element found: line 1, column 0 

有人可以纠正我在哪里,我错了,

回答

1

尝试:

worksheet_feed = spreadsheet.GetWorksheetsFeed(spreadsheetId) 
worksheetfeed = [] 
for worksheet in worksheet_feed.entry: 
    worksheetfeed.append(worksheet.id.text.rsplit('/', 1)[0]) 
list_feed = spreadsheet.GetListFeed(spreadsheetId, worksheetfeed[0])#get first worksheet 
entryList = [] 
for entry in list_feed.entry: 
    tempDict = {} 
    for key in entry.custom: 
     tempDict[str(key)] = str(entry.custom[key].text) 

其中spreadsheetId已被定义并且您之前已被认证。

+0

我正在使用公共电子表格,我不是该电子表格的所有者..那么如何获得身份验证? – sarsarahman 2014-11-04 07:29:52

+0

可能更容易使用如下所示的库:https://github.com/burnash/gspread – Ryan 2014-11-04 14:55:18