Hallo zusammen,
ich brauche mal Eure Hilfe bei meinem kleinen Problem:
Ich habe einer bestehenden Tabelle ein Feld namens "fieldLength" hinzugefügt. Es hat den Felddatentyp "LONG" (wurde so vorgegeben).
Jetzt möchte ich anstelle des Eintrags "<Null>" in der Tabelle "noData" haben, es sei den der Nutzer trägt einen Wert ein.
Bisher bin ich bis hierhin gekommen (Stelle mit den ????????? im Script). Ich verstehe einfach nicht wie hier der Ausdruck lauten muss.
Die Aufgabe beinhaltet natürlich noch weitere Punkte, aber die hab ich hoffentlich soweit mit meinem Script gelöst.
....
....
....
for fieldName in fieldList:
arcpy.ValidateFieldName(fieldName, inputFC)
if len(fieldList) == 0:
arcpy.AddField_management(inputFC , fieldName, fieldType, "", "", fieldLength)
arcpy.AddMessage("Feld erstellt: " + fieldName)
for fieldLength in fieldList:
arcpy.management.CalculateField("alpenv_huetten", "Laenge", ?????????????, "PYTHON3", '', "TEXT")
else:
arcpy.AddMessage("Feld bereits vorhanden: " + fieldName)
...
...
...
Ich hoffe mir kann jemand helfen.
LG Smea
Ausdruck für "noData" anstelle von <null>
Ich verstehe die Frage nicht. Du scheinst zu glauben wir alle kennen ArcGIS. Dem ist nicht so. Das ist eher speziell. Da musst du schon ein bisschen weiter ausholen. Geht es dir nur um die Darstellung? Dann reicht es doch, eine Variable in Abhängigkeit des Spaltenwertes zu belegen mit dem Wert, oder dem Platzhalter.
Wenn ich das richtig verstehe, kann man da einen Python-Ausdruck angeben.
https://pro.arcgis.com/de/pro-app/lates ... -field.htm
also etwas in der Art:
Total geraten, ... kann auch falsch sein...
Außerdem sagst du ja, dass das eher ein numerischer Typ LONG sein soll. Daher frage ich mich wieviel Sinn es macht einen String / TEXT da einzusetzen.
https://pro.arcgis.com/de/pro-app/lates ... -field.htm
also etwas in der Art:
Code: Alles auswählen
arcpy.management.CalculateField("alpenv_huetten", "Laenge", '"noData" if not fieldLength else fieldLength', "PYTHON3", '', "TEXT")
Außerdem sagst du ja, dass das eher ein numerischer Typ LONG sein soll. Daher frage ich mich wieviel Sinn es macht einen String / TEXT da einzusetzen.
oh sorry,
Ich dachte, da ich "nur" ein python-script abgeben soll, wäre die ArcGIS zu erwähnen nicht nötig. Sorry mein Fehler!
Ich versuche mal zu erklären, wo es bei mir nicht weitergeht. Nachdem ich mein Script geschrieben habe und es in ArcGIS ausgeführt habe.
Sind wie gewollt, zu meiner Attribut-Tabelle, neue Spalten z.B. "Feld1" und "Feld2" hinzugefügt worden. In den beiden Spalten stehen natürlich noch keine Werte, sondern <Null> in jedem Feld. Ich möchte anstelle des <Null> ein "noData" in den Feldern haben.
Man kann wohl mittels einem Ausdruck im Script festlegen, dass "noData" erscheint. Zumindest so lange, bis ein Benutzer etwas anderes als Wert einträgt.
Ich hoffe, ich konnte es besser erklären.
Ich dachte, da ich "nur" ein python-script abgeben soll, wäre die ArcGIS zu erwähnen nicht nötig. Sorry mein Fehler!
Ich versuche mal zu erklären, wo es bei mir nicht weitergeht. Nachdem ich mein Script geschrieben habe und es in ArcGIS ausgeführt habe.
Sind wie gewollt, zu meiner Attribut-Tabelle, neue Spalten z.B. "Feld1" und "Feld2" hinzugefügt worden. In den beiden Spalten stehen natürlich noch keine Werte, sondern <Null> in jedem Feld. Ich möchte anstelle des <Null> ein "noData" in den Feldern haben.
Man kann wohl mittels einem Ausdruck im Script festlegen, dass "noData" erscheint. Zumindest so lange, bis ein Benutzer etwas anderes als Wert einträgt.
Ich hoffe, ich konnte es besser erklären.
..... Außerdem sagst du ja, dass das eher ein numerischer Typ LONG sein soll. Daher frage ich mich wieviel Sinn es macht einen String / TEXT da einzusetzen.
Das mit dem "TEXT" kam von mir. Also ist wahrscheinlich falsch gewesen. Mir geht es um diesen Ausdruck.
Müsste es nicht so schon funktionieren?
arcpy.management.CalculateField("alpenv_huetten", "Laenge", '"noData" if not fieldLength else fieldLength', "PYTHON3")
Das mit dem "TEXT" kam von mir. Also ist wahrscheinlich falsch gewesen. Mir geht es um diesen Ausdruck.
Müsste es nicht so schon funktionieren?
arcpy.management.CalculateField("alpenv_huetten", "Laenge", '"noData" if not fieldLength else fieldLength', "PYTHON3")
@smea,
arcpy ist eines von Hunderttausenden Python-Zusatzpaketen. Die wenigsten werden das installiert, bzw. Erfahrung damit haben.
Also ich würd's mal ausprobieren... mehr kann ich leider auch nicht sagen.Müsste es nicht so schon funktionieren?
arcpy.management.CalculateField("alpenv_huetten", "Laenge", '"noData" if not fieldLength else fieldLength', "PYTHON3")
arcpy ist eines von Hunderttausenden Python-Zusatzpaketen. Die wenigsten werden das installiert, bzw. Erfahrung damit haben.