2017-08-17 4 views
-1

Ich erhalte beim Lesen von meinem CSV-Blatt einen ganzzahligen Fehler. Es gibt mir Probleme beim Lesen der letzten Spalte. Ich kenne die Zeichen in der letzten Spalte, aber wie definiere ich digit als ein Zeichen. Die API-Funktion psspy.two_winding_chg_4 erfordert eine Eingabe unter Verwendung Hochkommata ' ' wie in dieser Funktion (3. Element des Arrays)Variable in einfache Anführungszeichen setzen

excel sheet

Traceback (most recent call last): 
File "C:\Users\RoszkowskiM\Desktop\win4.py", line 133, in <module> 
psspy.two_winding_chng_4(from_,to,'%s'%digit,[_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i],[_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f, max_value, min_value,_f,_f,_f],[]) 
File ".\psspy.py", line 25578, in two_winding_chng_4 
TypeError: an integer is required 
ValueError: invalid literal for int() with base 10: 'T1' 

Der Code unten gezeigt:

for row in data: 
    data_location, year_link, from_, to, min_value,max_value,name2,tla_2,digit = row[5:14] 
    output = 'From Bus #: {}\tTo Bus #: {}\tVMAX: {} pu\tVMIN: {} pu\t' 
    if year_link == year and data_location == location and tla_2==location: 
     from_=int(from_) 
     to=int(to) 
     min_value=float(min_value) 
     max_value=float(max_value) 
     digit=int(digit) 
     print(output.format(from_, to, max_value, min_value)) 
     _i=psspy.getdefaultint() 
     _f=psspy.getdefaultreal() 
     psspy.two_winding_chng_4(from_,to,'%s'%digit,[_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i,_i],[_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f, max_value, min_value,_f,_f,_f],[]) 
+0

'T1' ist eine Zeichenkette. Sie müssen das "T" entfernen, um es zu einem int zu übertragen. In diesem Fall können Sie einfach das letzte Element dieser Zeichenfolge verwenden. 'int (Element [-1])' – Alex

Antwort

0

Die einfachste und wahrscheinlich Am nützlichsten wäre es, wenn Sie Ihre eigene Funktion verwenden, um nur Ziffern zu filtern. Beispiel:

def return_digits(string): 
    return int(''.join([x for x in string if x.isdigit()])) 
+0

'FATAL: Circuit Identifier ist mehr als zwei Zeichen (002069) Traceback (letzten Aufruf zuletzt): psspy.two_winding_chng_4 (von_, zu," '{}' ". Format (Ziffer), [_ i, _i, _i, _i, _i, _i, _i, _i, _i, _i, _i, _i, _i, _i, _i], [_ f, _f, _f, _f, _f, _f, _f , _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, max_wert, min_value, _f, _f, _f], []) Datei ". \ psspy.py", Zeile 25588, in two_winding_chng_4 psspy.Two_Winding_Chng_4Error: two_winding_chng_4 Fehler: ierr = 2 konnte nicht geöffnet werden Python-Datei: C: \ Benutzer \ RoszkowskiM \ Desktop \ win4.py Ausführen von Python-Datei: C: \ Benutzer \ RoszkowskiM \ Desktop \ WIN4 .py' – Mark

+0

Sorry war für ein paar Tage im Urlaub. Offensichtlich muss dies nur für die Spalte angewendet werden, die die Daten enthält, wie in Spalte 'N'. Dies scheint jedoch von der API zu kommen. Sie werden es wahrscheinlich dort implementieren müssen. Seltsam, dass Sie einen Dateifehler bekommen, obwohl ... – Troma78

Verwandte Themen