我有一个Python脚本,它利用Google,并且在我的for循环中得到了一个语法错误。
脚本
def get_segments():
try:
segments = analytics.management().segments().list().execute()
# except TypeError, error:
# Handle errors in constructing a query.
# print 'There was an error in constructing your query : %s' % error
# except HttpError, error:
# Handle API errors.
# print ('There was an API error : %s : %s' %(error.resp.status, error.resp.reason))
# Example #2:
# The results of the list method are stored in the segments object.
# The following code shows how to iterate through them.
for segment in segments.get('items', []):
print 'Segment Id = %s' % segment.get('id')
print 'Segment kind = %s' % segment.get('kind')
print 'Segment segmentId = %s' % segment.get('segmentId')
print 'Segment Name = %s' % segment.get('name')
print 'Segment Definition = %s' % segment.get('definition')
if segment.get('created'):
print 'Created = %s' % segment.get('created')
print 'Updated = %s' % segment.get('updated')
print误差
File "scripty.py", line 87
for segment in segments.get('items', []):
^
SyntaxError: invalid syntax 发布于 2017-04-17 21:41:33
语法错误不是在for中,而是因为您已经注释掉了与try匹配的out子句。尝试而不尝试是错误的。
发布于 2017-04-17 21:44:34
for循环不缩进。Python根据缩进分离块。除此之外,如果您使用的是try,您还必须使用catch块。这样的内容应该可以解决语法错误:
try:
segments = analytics.management().segments().list().execute()
for segment in segments.get('items', []):
print 'Segment Id = %s' % segment.get('id')
print 'Segment kind = %s' % segment.get('kind')
print 'Segment segmentId = %s' % segment.get('segmentId')
print 'Segment Name = %s' % segment.get('name')
print 'Segment Definition = %s' % segment.get('definition')
if segment.get('created'):
print 'Created = %s' % segment.get('created')
print 'Updated = %s' % segment.get('updated')
print
except Exception as e:
print "Exception Caught!"发布于 2017-04-17 21:44:48
这可能是因为您有一个try块而没有except或finally块。如果for循环用于当try块失败时,将其放置在一个put块中:
def get_segments():
try:
segments = analytics.management().segments().list().execute()
except:
for segment in segments.get('items', []):
print 'Segment Id = %s' % segment.get('id')
print 'Segment kind = %s' % segment.get('kind')
print 'Segment segmentId = %s' % segment.get('segmentId')
print 'Segment Name = %s' % segment.get('name')
print 'Segment Definition = %s' % segment.get('definition')
if segment.get('created'):
print 'Created = %s' % segment.get('created')
print 'Updated = %s' % segment.get('updated')
print通常,如果存在多个异常,则应该指定要通过are块(例如except ValueError:或except (RuntimeError, TypeError, NameError): )捕获哪种类型的异常。如果希望执行该块,而不管是否发生错误,则应将其放入finally中。
https://stackoverflow.com/questions/43460053
复制相似问题