سؤال

هل هناك أي مكتبات تحويل من النوع المستقل؟

لدي نظام تخزين للبيانات يفهم فقط البايتات/الأوتار ، لكن يمكنني وضع علامة على البيانات الوصفية مثل النوع الذي سيتم تحويله إليه.

كان بإمكاني اختراق بعض النظام الساذج لمحولات النوع ، كما فعل كل تطبيق آخر أمامي ، أو آمل أن أتمكن من استخدام مكتبة مستقلة ، إلا أنني لا أستطيع العثور على واحدة. غريب لمثل هذا النشاط المشترك.

فقط للتوضيح ، سيكون لدي شيء مثل:

("123" ، "عدد صحيح") وأريد الخروج 123

هل كانت مفيدة؟

المحلول 3

الأراضي المسطحة تفعل هذا جيدا. http://discorporate.us/projects/flatland/

نصائح أخرى

لديك خياران ، إما استخدام بنية أو ورطة الوحدات النمطية.

مع البنية ، تحدد تنسيقًا ويضغط على بياناتك إلى صفيف البايت. هذا مفيد للعمل مع هياكل C أو الكتابة إلى التطبيقات المتصلة بالشبكة التي تتطلب بروتوكول ثنائي.

يمكن للمخلل تلقائيًا التسلسل والهياكل الثدي المعقدة إلى سلسلة. هناك بعض التحذيرات لذلك من الأفضل قراءة توثيق. أعتقد أن هذه هي على الأرجح المكتبة التي تريدها.

>>> 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