【问题标题】:Python: how to match dictionary value to file name?Python:如何将字典值与文件名匹配?
【发布时间】:2017-07-17 09:40:21
【问题描述】:

我对 Python 比较陌生,并且遇到以下问题:

我有一个包含大约 52,000 个字典的列表,其中包含 PDF 上的元数据(单独存储)。现在,我想将其中的 5,000 个 PDF 与其对应的元数据字典进行匹配,但我不知道该怎么做。

元数据:

[{'Title': 'This is the title', 'Author': 'John A.', 'Code': '8372', ...}, {'Title': 'This is another title', 'Author': 'Peter B.', 'Code': '5837_c', ...}, ...]

PDF 文件名对应于“代码”值(即文件名是 5346、8372、3475_c、0294、5837_c 等,总是三个、四个或五个数字或三个、四个或五个数字,以_C)。有没有一种方法可以将 PDF 与元数据字典列表中的正确字典匹配,使用 PDF 的文件名进行匹配?

也非常欢迎其他解决方案!

编辑:我的目标是创建一个 Textacy 语料库,其中每个条目都是一个 Textacy Doc(即一个 PDF 的内容)及其对应的 Textacy 元数据(即 PDF 元数据)。

textacy_corpus = textacy.Corpus(u'en', texts=pdfs_list, metadatas=metadata_list)

来自 Textacy 的文档: "[元数据] 流必须与textsdocs 完全对齐,否则元数据将被错误分配。更具体地说,metadatas 中的第一项将分配给texts 中的第一项或docs,以此类推。” 这就是我想将 PDF 与正确的元数据匹配的原因。

【问题讨论】:

  • 您是如何存储文件名的?它们是否包含在列表中?
  • 不,我只阅读了 PDF,因为我想稍后对文本进行分析。问题是我想创建一个包含 PDF 及其元数据的 Textacy 语料库,然后才执行分析。
  • 不确定我们能为您做什么。您所说的“将 PDF 与字典匹配” 是什么意思?像文件路径一样?代码的结果应该是什么?
  • 您在第一个示例中拥有的是一个字典列表。根据您的解释,我了解到每个字典的“代码”键都包含一个值或一个值列表。这些值中的每一个都可以作为实际文件名在某处找到。您的问题是如何在该特定位置搜索每个文件名?

标签: python dictionary pdf spacy textacy


【解决方案1】:
dict((x['Code'],x) for x in <YOUR_LIST>)

【讨论】:

  • 欢迎来到 Stack Overflow!感谢您提供此代码 sn-p,它可能会提供一些即时帮助。一个正确的解释would greatly improve 其教育价值通过展示为什么这是一个很好的解决问题的方法,并将使它对未来有类似但不相同的问题的读者更有用。请edit您的答案添加解释,并说明适用的限制和假设。
猜你喜欢
  • 2021-07-22
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 2020-09-25
  • 2021-05-26
  • 2019-02-24
  • 2013-01-07
  • 1970-01-01
相关资源
最近更新 更多