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信息在哪里?
答案 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了解更多示例。
干杯