スタンドアロンのPythonタイプ変換ライブラリはありますか?

StackOverflow https://stackoverflow.com/questions/468639

  •  19-08-2019
  •  | 
  •  

質問

スタンドアロンのタイプ変換ライブラリはありますか?

バイト/文字列のみを理解するデータストレージシステムがありますが、変換される型などのメタデータにタグを付けることができます。

他のすべてのアプリケーションがやっているように、タイプコンバーターの素朴なシステムをハックするか、見つからない場合を除き、スタンドアロンライブラリを使用できます。このような一般的なアクティビティは奇妙です。

明確にするために、次のようなものを用意します:

( '123'、 'integer')および123を取得したい

役に立ちましたか?

解決 3

フラットランドはこれをうまく行っています。 http://discorporate.us/projects/flatland/

他のヒント

2つのオプションがあり、 struct を使用します。または pickle モジュール。

structを使用すると、形式を指定し、データをバイト配列に圧縮します。これは、C構造体を使用したり、バイナリプロトコルを必要とするネットワークアプリに書き込むのに便利です。

pickleは、複雑なPython構造を自動的に文字列にシリアル化および逆シリアル化できます。いくつかの注意事項があるので、ドキュメントを読むのがベストです。これはおそらくあなたが望むライブラリだと思います。

>>> import pickle
>>> v = pickle.dumps(123)
>>> v
'I123\n.'
>>> pickle.loads(v)
123
>>> v = pickle.dumps({"abc": 123})
>>> v
"(dp0\nS'abc'\np1\nI123\ns."
>>> pickle.loads(v)
{'abc': 123}

これを考慮してください。

import datetime

def toDate( someString ):
    return datetime.datetime.strptime( someString, "%x" ).date()

typeConversionMapping = { 'integer': int, 'string': str, 'float': float, 'date': toDate }
def typeConversionFunction( typeConversionTuple ):
    theStringRepresentation, theTypeName = typeConversionTuple
    return typeConversionMapping[theTypeName](theStringRepresentation)

これは、このような一般的なアクティビティに十分なスタンドアロンライブラリですか?十分にテストされた、エラー耐性のあるライブラリで十分でしょうか?または、もっと必要なものがありますか?

より多くのまたは異なる日付/時刻変換が必要な場合は、異なる形式の新しいtoDate関数を追加するだけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top