Untuk apa nilainya, saya punya paket Python yang berisi pemetaan seperti itu. Lihat https://github.com/Toblerity/Fiona/blob/master/src/fiona/ogrext.pyx#L18 . Disalin di sini:
# 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,
}
Pemetaan saya tidak lengkap karena saya tidak mengalami banyak bidang Daftar OFT * di alam. Anda ingin memetakan ini ke array Python, saya kira (OFTIntegerList -> array ('i') misalnya) karena daftar Python tidak diketik. Bidang OFTDate / Time adalah iblis dan pemetaan ini ke Python DateTime tidak membuat situasi lebih baik karena API modul datetime mengerikan. Dalam proyek saya, saya akan memetakan tanggal dan waktu ke string ISO 8601 seperti "2012-01-02T20: 59: 38Z". Data biner mentah akan dipetakan ke string Python non-unicode (yang menjadi tipe byte di Python 3).