首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SyntaxError Python -segments.get中的段(‘items’,[]):

SyntaxError Python -segments.get中的段(‘items’,[]):
EN

Stack Overflow用户
提问于 2017-04-17 21:38:57
回答 3查看 229关注 0票数 0

我有一个Python脚本,它利用Google,并且在我的for循环中得到了一个语法错误。

脚本

代码语言:javascript
复制
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

误差

代码语言:javascript
复制
File "scripty.py", line 87
    for segment in segments.get('items', []):
      ^
SyntaxError: invalid syntax 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-04-17 21:41:33

语法错误不是在for中,而是因为您已经注释掉了与try匹配的out子句。尝试而不尝试是错误的。

票数 1
EN

Stack Overflow用户

发布于 2017-04-17 21:44:34

for循环不缩进。Python根据缩进分离块。除此之外,如果您使用的是try,您还必须使用catch块。这样的内容应该可以解决语法错误:

代码语言:javascript
复制
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!"
票数 0
EN

Stack Overflow用户

发布于 2017-04-17 21:44:48

这可能是因为您有一个try块而没有exceptfinally块。如果for循环用于当try块失败时,将其放置在一个put块中:

代码语言:javascript
复制
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中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43460053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档