Faites quelque chose comme ce qui suit:
def isRecordValid(stock,price,volume,stime):
#do input validation here, return True if record is fine, False if not. Optionally raise an Error here and catch it in your loop
return True
reader = csv.reader(idata.split("\r\n"))
stocks = []
for line in reader:
if line == '':
continue
stock, price, volume, stime = line
try:
if isRecordValid(stock,price,volume,stime):
price = float(price)
volume = int(volume)
stocks.append((stock, price, volume, stime))
except Exception as e:
print "either print or log and error here, using 'except' means you can continue execution without the exception terminating your current stack frame and being thrown further up"
définissent Fondamentalement une autre méthode (ou le faire en ligne) pour valider ce stock, le prix, le volume et stime sont tous que vous attendez. J'essaierais d'attraper des erreurs ici aussi au cas où vos appels float() ou int() pour convertir les chaînes de prix et de volume en leurs types attendus échoue pour une raison quelconque.
merci! Mes pensées étaient seulement quelques enregistrements seront mauvais, ou erreur. Je pensais un peu comme si le volume est un texte, return int (0), si le prix est du texte, return float (0) – Merlin