yoavaviram / python-google-spreadsheet Goto Github PK
View Code? Open in Web Editor NEWA simple Python wrapper for the Google Spreadsheet API
License: Other
A simple Python wrapper for the Google Spreadsheet API
License: Other
Nothing has changed in my App but it stopped working in May. After connection I call SpreadsheetAPI.self.api.list_spreadsheets(), I get:
File "/home/ubuntu/play/python-google-spreadsheet/google_spreadsheet/api.py", line 62, in list_spreadsheets
sheets = self._get_client().GetSpreadsheetsFeed()
File "/usr/lib/python2.7/dist-packages/gdata/spreadsheet/service.py", line 98, in GetSpreadsheetsFeed
converter=gdata.spreadsheet.SpreadsheetsSpreadsheetsFeedFromString)
File "/usr/lib/python2.7/dist-packages/gdata/service.py", line 1073, in Get
return converter(result_body)
File "/usr/lib/python2.7/dist-packages/gdata/spreadsheet/init.py", line 394, in SpreadsheetsSpreadsheetsFeedFromString
xml_string)
File "/usr/lib/python2.7/dist-packages/atom/init.py", line 92, in optional_warn_function
return f(_args, *_kwargs)
File "/usr/lib/python2.7/dist-packages/atom/init.py", line 126, in CreateClassFromXMLString
tree = ElementTree.fromstring(xml_string)
File "", line 125, in XML
cElementTree.ParseError: no element found: line 1, column 0
I found similar issues that look related:
http://stackoverflow.com/questions/30492589/gdata-spreadsheet-library-for-python-not-working-anymore
They suggest moving to
https://github.com/burnash/gspread
Do you have any plans to fix this issue? If not I will have to try the gspread.
Where can I find the google_spreadsheet_source?
Yoav,
thanks for your package. I was half way writing basically the same when I stumbled on yours which saved me a bit of time.
I however needed some more functionality which you may wish to implement in your package.
My application requires unique row identification for later retrieval.
Sorting through the whole listfeed seemed grossly inefficient, so I am using the following as workaround.
identification:
sheet=api.get_worksheet(spreadsheet, worksheet)
rows = sheet.get_rows()
for i, row in enumerate(rows):
id = sheet._get_row_entries(sheet.query)[i].id.text.rsplit("/",1)[1] #NAUGHTY!
retrieval:
rowkey='4su05' #unique row key
sheet=api.get_worksheet(spreadsheet, worksheet)
sheet.keys['row_id']=rowkey #NAUGHTY!
sheet.entries=[sheet.gd_client.GetListFeed(**sheet.keys)] #NAUGHTY!
rows=sheet.get_rows()
Now you can update etc as intended
Regards
Tarek
Can't install with pip. Thanks for lib :)
I would like to do something like:
ws = api.new_worksheet('Data')
ws.insert_row({'a':1})
ws.insert_row({'a':1, 'b':2, 'c':3})
ws.insert_row({'b':2, 'c':3, 'd':4})
Resulting in the table:
a,b,c,d
1,,,
1,2,3,
,2,3,4
I looked into it briefly, and it looked like it was going to take too much effort for me to do for my current goals, so I went with a human in the loop work around where I will manually create a blank worksheet, and then manually add columns on demand. Here is the blog post I found with the best info:
http://www.garrettpatterson.com/2011/08/04/add-new-column-to-google-spreadsheet/
I have a spreadsheet, where the first row are the labels for the columns. Many of my labels contain underscores like "failures_today"
When I try to edit that value with:
row['failures_today'] = 1
I get a key error, and if I print out the row dictionary to string, I see that the key is now
"failurestoday"
I need to maintain my column names. Do you ahve any suggestions
worksheets = spreadsheet.list_worksheets(spreadsheets[0][1])
worksheets = api.list_worksheets(spreadsheets[0][1])
Function get_rows()
without query param returns the right value, but if following you use get_rows(query='...')
, with a query param, the result is wrong, and it returns the same as get_rows()
.
The problem is the condition if self.query is not None and self.query != new_query:
in function get_rows()
, because you have to do the _flush_cache()
I've just deleted self.query is not None
, and now it works perfectly.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.