2017-05-15 8 views
-5

Ich bin neu mit Python-Programmierung. Ich bekomme den unteren Fehler auf der 'str'. Als ich die + str hinzugefügt habe, hat es nicht funktioniert.Python Fehler TypeError: kann 'str' und 'float' Objekte nicht verketten

wkt = "POINT("+ geoPoint["lat"] +" " + geoPoint["lon"] + ")" 

TypeError: cannot concatenate 'str' and 'float' objects 

Alle Ratschläge, wie ich diesen Fehler beheben kann?

+1

Versuchen Sie nicht, 'str' und' flloat' Objekte zu verketten? –

+0

Lernen Sie die Sprache nicht, indem Sie den Code eingeben, ohne die Bedeutung zu verstehen. Beginnen Sie mit dem Lesen eines exzellenten Python-Tutorials (in jeder Python-Distribution enthalten, die auch auf der python.org-Website verfügbar ist). –

Antwort

3

Die einfachste Lösung würde wie folgt aussehen:

wkt = "POINT("+ str(geoPoint["lat"]) +" " + str(geoPoint["lon"]) + ")" 

Das folgende würde akzeptiert Python stilistischen Normen mehr im Einklang:

wkt = "POINT(%f %f)" % (geoPoint["lat"], geoPoint["lon"]) 

Dies verwendet die einfachste Form der string formatting

Du könntest noch etwas Schöneres tun:

wkt = "POINT({lat} {lon}".format(**geoPoint) 

Siehe die verlinkte Seite für weitere Ideen zu diesem Thema.

2

Lage nicht mit '+'

Der besten Weg 'str' und 'float' verketten Zeichenfolge verketten und in python.Use Format Funktion float:

wkt = "POINT({} {})".format(geoPoint["lat"], geoPoint["lon"]) 

auch verwenden :

>>>wkt = "POINT(%s %s)" % (geoPoint["lat"], geoPoint["lon"]) 
>>>'s'+2 # use like this.It will raise type error exception 
TypeError: cannot concatenate 'str' and 'float' objects 
>>>'%s%s' % ('s', 2) 
's2' 
>>>'POINT({}{})'.format(geoPoint["lat"], geoPoint["lon"]) 
# It will print your value 
Verwandte Themen