[英]“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.