【问题标题】:python sintaxError: invalid sintax , else: [closed]python syntaxError:无效语法,否则:[关闭]
【发布时间】:2016-04-02 12:46:50
【问题描述】:

我收到这个无效的语法错误:

    File "./data_3.0.1.py", line 148
    else:    
       ^
SyntaxError: invalid syntax

当我尝试运行这个函数时:

    def funzione_aggiornamento_prezzi(titolo):
    pprint ("titolo " + titolo)

#parametri per scaricare lo storico dei prezzi

    params = {'item': titolo, 
              'frequency': 'TBT',
              'dataDa':x_giorni_fa()} 

    try:
         r = requests.get(myurl, params=params)
    except:
         pprint("Si e' verificato un errore")
    else:
        pprint(r.status_code)
        pprint(r.url)        
        new_list = crea_lista(r)           


#codice per scrivere su di un csv da una lista
    nomen = "%s.TBT.csv" % (titolo)
    csvfile = open(nomen, 'a')    
    reportwriter = csv.writer(csvfile, quoting=csv.QUOTE_MINIMAL)
#codice per scrivere su di un csv


# controllo del numero di rows nel file
    with open(nomen,"r") as f:
        reader = csv.reader(f,delimiter = ",")
        data = list(reader)
        row_count = len(data)

    if row_count == 0:
        for i in new_list:
            da_appendere = new_list[i+1]
            reportwriter.writerow(da_appendere)
    csvfile.close() 
#here I get the error   
    else:    
        with open(nomen, 'rb') as f:
        last_timestamp = f.readlines()[-1].split(",")[0]

#codice per aggiungere al csv solo i nuovi dati

        found_it = 0
        for i in new_list:
            if i == last_timestamp:
                found_it = 1
            if found_it == 1:
                da_appendere = new_list[i+1]
                reportwriter.writerow(da_appendere)
        csvfile.close()     


for i in lista_indici:
        funzione_aggiornamento_prezzi(i)   

我不明白问题出在哪里...也许很容易,但是..我真的看不出来!! 基本上我想要对 python 说,如果您打开的 csv 文件为空,只需附加新列表,否则仅附加新列表中尚未在您刚刚打开的 csv 文件中的元素

谢谢

【问题讨论】:

  • 修正try和except中的缩进
  • 更具体地说:删除try和except中每一行前的多余空格。
  • else 之前的行的缩进也是错误的(在其他行中,例如第一行)。缩进在 Python 中很重要,错误的缩进在某些情况下是语法错误(在其他情况下,会导致错误的行为)。
  • @zondo 虽然这些行的缩进不一致,但在技术上并没有错。

标签: python if-statement syntax


【解决方案1】:

csvfile.close() 行与上面的if 平齐,因此终止,如果 - 所以当你不在if 中时你有一个else:。您还需要修复with之后的行的缩进

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 2022-08-24
    • 2020-12-01
    • 2022-06-14
    • 2022-12-03
    • 1970-01-01
    相关资源
    最近更新 更多