使用PyFileMaker提取特定记录/字段

时间:2014-09-16 09:37:25

标签: python regex windows filemaker

Python 2.7。 使用PyFileMaker,我可以访问FileMaker(FM)服务器,打开数据库,打开一个表(布局),但我无法(轻松)访问特定的记录和字段。我想知道如何从表

中提取特定值
  • 我能做什么

这是我循环进入数据库以提取记录的方式。

for i in range (25):
    try:
         a= fm.doFind(id_monument = i)
         L.append(a)
    except:
         pass

考虑(25)是记录的数量(但它应该有更好的方法来循环数据库)。 L是一个库存结果列表。结果是,对于列表的第一个单元格:

>>> L[0]
<PyFileMaker.FMResultset.FMResultset instance WITH LIST OF 1 RECORDS (total-count     is     327)>
[MODID = '0'
RECORDID = '236'
fk_Lieudec = '00002'
fk_auteur_fiche = '00001'
(...)

L的每个单元格都是FM DB的记录。 F[0]类型为<type 'instance'>(Wasa?)

  • 我想做什么

1)提取所有记录ID,然后循环使用这些ID

2)仅提取特定记录。例如'fk_Lieudec' LIKE '*2*'

3)仅提取特定字段。例如,对于每个记录,提取ID和X,Y坐标。

我实际上是在看regex来做这件事......这是好方法吗?通常,Internet上的PyFileMaker信息在哪里?

1 个答案:

答案 0 :(得分:0)

你正在做的方式会像循环计数器一样多次击中FMServer。如果您从新的GitHub存储库安装新版本的PyFileMaker,您将能够执行findQuery并将ID列表传递到函数中:

fm = FMServer('login:password@filemaker.server.com','dbname','layoutname')

results = fm.doFindQuery({'id': [1, 2, 3, 4],})
for entry in results: print entry

甚至可以组合这样的查询:

fm.doFindQuery({'id': [1, 2, 3, 4], 'color': ['red', 'blue'], '!gender': 'm'})

查看here了解更多示例。

干杯