1

これはこの投稿のフォローアップです。繰り返しますが、特定の場所のメタデータと測定データを含むテキスト ファイルがあります。このデータを ArcGIS と呼ばれる空間マッピング ソフトウェアに書き込みたいと考えています。そのためには、リスト内の各値に対してArcGIS で定義されているデータ タイプを指定する必要があります。例えば:

type("foo") 

Pythonで提供されますが、ArcGIS ではstrとして知られています。textそのため、リスト内のすべての要素のデータ型を ArcGIS の適切なデータ型に変換したいと考えています。このようなもの:

# This is the raw data that I want to write to ArcGIS
foo= ['plot001', '01-01-2013', 'XX', '10', '12.5', '0.65', 'A']
# The appropriate datatypes in Python are:
dt= [str, str, str, int, float, float, str]
# In ArcGIS, the datatypes should be:
dtArcGIS= ['text', 'text', 'text', 'short', 'float', 'float', 'text']

問題は、どうやって から来ることができるdtdtArcGISかです。私は次のdictionaryように考えていました:

dtDict= dict{str:'text', int:'short', float:'float'}

しかし、これは構文エラーになります。どんな助けでも大歓迎です、ありがとう!

4

1 に答える 1

1

2 つの形式を混在させています。dictこのように削除するだけです

dtDict = {str:'text', int:'short', float:'float'}

そして、これが型を変換する方法です

foo = ['plot001', '01-01-2013', 'XX', '10', '12.5', '0.65', 'A']
from ast import literal_eval

dt = []
for item in foo:
    try:
        dt.append(type(literal_eval(item)))
    except:
        dt.append(str)

dtDict = {str:'text', int:'short', float:'float'}
print map(dtDict.get, dt)

出力

['text', 'text', 'text', 'short', 'float', 'float', 'text']
于 2013-12-21T11:57:58.773 に答える