簡體   English   中英

我無法弄清楚“期望縮進塊”

[英]“expected an indented block” which I couldn't figure out

這是我在python中的腳本,出現如下錯誤:

File "overlap.py", line 5
    for line in infile:
      ^
IndentationError: expected an indented block

我不知道錯誤,輸入是從yelp下載json文件。 該腳本是用vim編寫的,我一次又一次地檢查了縮進,這里似乎沒有錯。 這里的代碼:

import json

def cal_overlap(filename = "yelp_academic_dataset_review.json"):
    with open(filename, 'rb') as infile:
        for line in infile:
            data = json.loads(line)
            buz = data["business_id"]
            user_id = data["user_id"]
            if user_id in result:
                if buz not in result[user_id]:
                    result[user_id].append(buz)
            else:
                result[user_id] = []
                result[user_id].append(buz)
        return result

def plot(res):
    s = 0
    count = 0
    x = []
    y = []
    for key in res:
        count += 1
        s += len(res[key])
    return float(s) / count

def main():
    res = cal_overlap()
    print plot(res)


if __name__ == '__main__':
    main()

看起來您在縮進中混入了制表符和空格。 這可能會導致縮進看起來很適合您,而不適合解釋器。

堅持使用所有空格作為縮進。

編輯:

如果在python腳本中使用了shebang,則可以指定參數-tt來檢查-tt中是否使用了制表符和空格的混合。

例如

#!/usr/bin/env python -tt

我沒有for line in infile:看到for line in infile:的問題for line in infile: ,但是倒數第二行是錯誤的:

if __name__ = '__main__':

需要閱讀

if __name__ == '__main__':

我修復了該問題,模塊編譯正常。

也許您的代碼中混合了制表符和空格? 只需使用所有空格作為縮進,否則會出現一些奇怪的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM