Để biết giá trị của nó, tôi đã có một gói Python chứa ánh xạ như vậy. Xem https://github.com/Toblerity/Fiona/blob/master/src/fiona/ogrext.pyx#L18 . Sao chép tại đây:
# Mapping of OGR integer field types to Fiona field type names.
#
# Only ints, floats, and unicode strings are supported. On the web, dates and
# times are represented as strings (see RFC 3339).
FIELD_TYPES = [
'int', # OFTInteger, Simple 32bit integer
None, # OFTIntegerList, List of 32bit integers
'float', # OFTReal, Double Precision floating point
None, # OFTRealList, List of doubles
'str', # OFTString, String of ASCII chars
None, # OFTStringList, Array of strings
None, # OFTWideString, deprecated
None, # OFTWideStringList, deprecated
None, # OFTBinary, Raw Binary data
None, # OFTDate, Date
None, # OFTTime, Time
None, # OFTDateTime, Date and Time
]
# Mapping of Fiona field type names to Python types.
FIELD_TYPES_MAP = {
'int': IntType,
'float': FloatType,
'str': UnicodeType,
}
Ánh xạ của tôi không đầy đủ vì tôi không chạy vào nhiều trường OFT * Liệt kê. Bạn muốn ánh xạ các mảng này sang mảng Python, tôi cho rằng (ví dụ OFTIntegerList -> mảng ('i')) vì danh sách của Python không được gõ. Các trường OFTDate / Time là ma quỷ và ánh xạ chúng vào Python DateTime sẽ không làm cho tình hình trở nên tốt hơn vì API mô-đun datetime là khủng khiếp. Trong dự án của tôi, tôi sẽ ánh xạ ngày và thời gian tới các chuỗi ISO 8601 như "2012-01-02T20: 59: 38Z". Dữ liệu nhị phân thô sẽ được ánh xạ tới chuỗi Python không unicode (trở thành kiểu byte trong Python 3).