将文本数据编码和解码为丰富的python数据结构

stypes的Python项目详细描述


将文本数据编码并解码为富python数据结构
================================================


stypes是写入
的文本解析、转换和格式化库,可有效处理大型固定宽度文本记录数据文件。使用文本布局规范将文本
流转换为字典、列表、元组、命名元组、有序字典
等还支持嵌套数据结构和重复元素。


库的主要设计目标之一是处理COBOL系统中常见的基于文本的记录数据当然,库可以用来处理任何固定布局的文本数据。

Numeric('999V99'))]
text=“Johnson 2109750”
rec=spec.unpack(text)
assert rec.name==“Johnson”
assert rec.age==21
assert rec.weight==Decimal(“97.5”)





以及一个更有趣的例子,它使用
记录列表的嵌套数据结构并实际更新记录。


导入数组,Dict,Integer,Numeric
item=Dict([(“行号”,Integer(2)),
(“item\u no”,Integer(5)),
(“总计”,Numeric(“999.99”))))
invoice=Dict([
(“发票号”,Integer(4)),
(“总计”,Numeric(“999.99”)),
(“项”,数组(3(项目)))))))
>text=“0001200.4501000000004002.0002000006198.50”
>rec=invoice.unpack(inv)
rec现在是
{invoice{invoice{invoice{inv:1,
'items':[{'item{'item{'item{'item{'item{'item{'item{'item{'item{'item{'u{'item{'item{'u{'item{'item{'item{br/>(invv){br/>(inv r){r{rec:None,“total”:None}],
“total”:decimal('200.45')}


“总计”:十进制(“20”)}

数据
----------
Stypes采用的方法是文本数据中的错误不是例外。
数据错误是预期的,应该在
程序的正常流程中处理。


Stypes包含未转换值的概念。当分析无法将
反序列化为目标格式的文本时,会将一个未转换的值实例放在
它的位置所有容器对象都有一个has-unerted()方法,该方法允许
客户端代码轻松检测是否有错误。


fmt=list([numeric('99v9'),integer(4)])
rec=fmt.unpack(“44x001a”)
print rec
[<;unertedvalue string='44x'reason=”应为1位数字。找到'x'>;,
<;unertedvalue string='001A'reason='需要整数的所有数字'>;]


assert rec.has_unerted()==true

print rec[0].reason
“需要1位数字。找到“x”

“需要整数的所有数字”





installation
-



可以使用pip安装stypes

pip install stypes



/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
忽略java@RestController(“/xxx”)映射   eclipse获取Java项目中所有构建错误的最快方法是什么?   java活动到为底部导航栏保存片段的活动永远不会到达片段,而是到由FrameLayout保存片段的活动   从SpringBoot 2.2.2 t SpringBoot 2.3.7迁移时,创建名为“tomcatServletWebServerFactory”的bean时发生java错误   java如何删除声音片段?   从客户机实现的角度来看,我可以比较Java可调用和角度可观测(RxJS)吗   C++中的java命名空间私有成员   Java中的字数计数给出错误的输出   java我应该为简单的switch语句使用多态性吗?   sql如何修复java中连接到数据库的网络协议错误(SQLNonTransient)   java如何在Kotlin中使用Lambda handleHavyContent()   javascript在安卓上以react native with JAVA执行dns srv请求   javacom。投递箱。果心NetworkIOException:软件导致的连接中止   Java中的“单代”垃圾收集器是什么?   java如何使用RecyclerView onCreate   java使用spring高效地扫描两个包的类路径   两个数组的java笛卡尔积   货币Java NumberFormat实例创建   java Spring引导到第三方的基本身份验证   JPA/Hibernate中带有JoinColumn的复合主键的java AnnotationException