/ / Errore di script del file di lettura Python - iso-8859-1

Errore di script del file di lettura Python - iso-8859-1

Cosa c'è di sbagliato in questo script python:

RoomNumber = input("Enter the room number:")

text_file = open("roombookings.txt", "r")
for line in text_file:
(s["Date"], s["Room"], s["Course"], s["Stage"]) = line.split(";")
if RoomNumder == (s["Room"]):
print("Date: " + s["Date"])
print("Room: " + s["Room"])
print("Course: " + s["Course"])
print("Stage: " + s["Stage"])
text_file.close()

input("nnPress enter key to exit.")

Sto cercando di ottenere la data, il corso e il livello come uscita quando si immette il numero della stanza, ma qualcosa non va. Quando eseguo il copione su

"(s [" Data "], s [" Stanza "], s [" Corso "], s [" Fase "]) = line.split ("; ")"

Ottengo un "errore di valore: serve più di 1 valore per decomprimere". Non so cosa significhi.

risposte:

3 per risposta № 1
(s["Date"], s["Room"], s["Course"], s["Stage"]) = line.split(";")

Ottengo un "errore di valore: serve più di 1 valore per decomprimere" Non lo so cosa significa.

Significa che sta cercando di trovare quattro valori, da assegnare alle quattro chiavi elencate a sinistra, ma che l'array è prodotto da line.split(";") ne contiene solo uno La riga in questione non deve contenere un punto e virgola; potrebbe essere vuoto.


1 per risposta № 2

Il disfare l'errore correlato è piuttosto comune in Python e ti dice che è impossibile eseguire tutti gli incarichi richiesti, ad es.

a,      = 1, 2  # ValueError: "too many values to unpack"
a, b, c = 1,    # ValueError: "need more than 1 value to unpack"
a, b, c = 1, 2  # ValueError: "need more than 2 values to unpack"

Come ha detto Jeremy Banks, sembra uno dei tuoile righe non contengono il punto e virgola (quindi non è stata eseguita alcuna divisione e si ha un solo valore sul lato destro dell'assegnazione). È necessario un qualche tipo di convalida dell'input.