我试图编写一个小工具将图片从Google App Engine上传到Picasa。获取图像的作品,但是当我试图把它上传我得到的错误“类型错误:STAT()参数1必须是(编码字符串,不空字节),而不是str的”尝试使用GData API将图片从Google App Engine上传到Picasa时出现TypeError
的代码基本上是这样的:
def getfile(url):
result = urlfetch.fetch(url)
if result.status_code == 200:
return (result.content)
logging.error ("[-] Error fetching URL: %s" % url)
def uploadpicture(comment,pic):
album_url = '/data/feed/api/user/%s/album/%s' % (username, album)
fname = "image.jpg"
entry = gd_client.InsertPhotoSimple(album_url, fname, comment, pic, content_type='image/jpeg')
picurl = "http://brilliantleap.com/blog/frog.jpg"
pic = getfile(picurl)
comment = "Test"
uploadpicture(comment, pic)
完整的堆栈跟踪是:
回溯(最近通话最后一个):
文件“/家/ BIRT /材料/谷歌/ AppEngine上/转/ web应用/ 初始化 py”为,线507,在通话 handler.get(*组)
文件 “/home/birt/stuff/app_picasaupload/main.py”,线路124,在获取 uploadpicture(评论, PIC)
文件 “/home/birt/stuff/app_picasaupload/main.py”,线路104,在uploadpicture 条目= gd_client.InsertPhotoSimple(ALBUM_URL,FNAME,评论,PIC,CONTENT_TYPE = '图像/ JPEG')
文件 “/home/birt/stuff/app_picasaupload/gdata/photos/service.py”,线路469,在InsertPhotoSimple CONTENT_TYPE)
文件 “/home/birt/stuff/app_picasaupload/gdata/photos/service.py”,线路398,在InsertPhoto os.path.exists(filename_or_handle):#这是一个文件名
文件“ /usr/lib/python2.5/posixpath.py“,第171行,存在 st = os.stat(路径)
文件”/home/birt/stuff/google/appengine/tools/dev_appserver.py “1109,在通话 如果不是FakeFile.IsFileAccessible(路径):
文件”/家/ BI RT /东西/谷歌/应用服务引擎/工具/ dev_appserver.py”,线1018,在IsFileAccessible normcase = normcase)
文件 “/home/birt/stuff/google/appengine/tools/dev_appserver.py”,线1036,在_IsFileAccessibleNoCache 如果os.path.isdir(logical_filename):
文件 “/usr/lib/python2.5/posixpath.py”,线路195,在ISDIR ST = os.stat(路径)
类型错误:STAT()参数1必须(编码而没有空字节串),而不是str的
任何想法? :-)
这是不可能的,没有实际的代码和一个完整的堆栈跟踪。 –
你是否使用Python 3?这就是错误信息所暗示的。 appengine SDK特别支持(当然也包括生产版本;-) Python 2.5,而不是当前版本。 –
这不是你最初所说的例外。如例外情况所示,您似乎试图获取无效的网址。 –