快速交换格式文件(.qif)的分析器。

qifparse的Python项目详细描述


qif分析器

https://travis-ci.org/giacomos/qifparse.png?branch=master

qifparse是一个快速交换格式文件(.qif)的解析器。

即使qif格式是:

  • 已经很老了
  • Quicken不再支持导入,
  • 在某些数据管理中不明确(尤其是日期方面)

很多个人理财经理还是很常用的。

用法

下面是一个解析示例:

>>> from qifparse.parser import QifParser
>>> qif = QifParser.parse(file('file.qif'))
>>> qif.get_accounts()
(<qifparse.qif.Account object at 0x16148d0>, <qifparse.qif.Account object at 0x1614850>)
>>> qif.accounts[0].name
'My Cash'
>>> qif.get_categories()
(<qifparse.qif.Category object at 0x15b3d10>, <qifparse.qif.Category object at 0x15b3450>)
>>> qif.accounts[0].get_transactions()
(<Transaction units=-6.5>, <Transaction units=-6.0>)
>>> str(qif)
'!Type:Cat\nNfood\nE\n^\nNfood:lunch\nE\n^\n!Account\nNMy Cash\nTCash\n^\n!Type:Cash...
...

下面是结构创建的示例:

>>> qif_obj = qif.Qif()
>>> acc = qif.Account(name='My Cc', account_type='Bank')
>>> qif_obj.add_account(acc)
>>> cat = qif.Category(name='food')
>>> qif_obj.add_category(cat)
>>> tr1 = qif.Transaction(amount=0.55)
>>> acc.add_transaction(tr1, header='!Type:Bank')

>>> tr2 = qif.Transaction()
>>> tr2.amount = -6.55
>>> tr2.to_account = 'Cash'
>>> acc.add_transaction(tr2)
>>> acc.add(tr2)
>>> str(qif_obj)
'!Type:Cat\nNfood\nE\n^\n!Account\nNMy Cc\nTBank\n^\n!Type:Bank\nD02/11/2013\nT...
...

更改日志

0.5(2013-11-03)

  • 现在,交易也可以是外部账户
  • 将属性移动到方法以接受筛选器

0.4(2013-11-02)

  • 地址可以是多行
  • 拆分可以具有address属性
  • 添加对类的支持
  • 添加对记忆传输的支持

0.3(2013-11-02)

  • 更多的重构,现在lib更加简单和工程化
  • 改进的字段验证

0.2(2013-11-02)

  • 巨大的重构,现在可以通过编程方式创建和修改结构

0.1(2013-11-01)

  • pypi上的第一个版本

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

推荐PyPI第三方库


热门话题
java正确使用setCellValueFactory   java当使用flavor维度时,设置Android applicationId的正确方法是什么?   java为了在测试用例中并发执行某些步骤,可以克隆WebDriver实例   JAVA中的If语句给出错误   java在kindle上使用JavaFX   java如何在屏幕上显示多个视图时提高性能?   java“重命名”文件项   使用kafka运行Spark流媒体示例时出现java NoSuchMethodError   java如何在查询视图时返回实体列表   java在条件表达式中使用equals方法   java实现了一种回调机制,用于通知插入/更新   java我想用动态的方式把这个json做成表格式,我怎样才能用安卓来制作呢?   java在另一个字符串的特定点输入字符串时遇到问题   java如何在SeleniumWebDriver中选择xpath中具有动态值的对象   JavaJooq生成一个静态方法来调用函数,但没有方法将其作为字段   scala文件名包含斜杠标点符号,并在线程“main”java中给出异常。木卫一。FileNotFoundException:foo/boo/en_en。json(没有这样的文件或目录)   java使用Saxon和XSLT转换JDOM XML文档   使用Java数组   java从smb文件夹读取文件   java在where in子句中没有值时如何执行查询