使用 python 在 arangodb 中批量导入 .json 文件

Bulk import of .json files in arangodb with python

我收集了大量 .json 文件,其中包含成百上千个我想导入到 arangodb 集合中的文档。我可以使用 python 来做到这一点吗?如果答案是肯定的,任何人都可以发送一个关于如何从文件列表中做到这一点的例子吗?即:

for i in filelist:
    import i to collection

我已经阅读了文档,但我找不到任何类似的内容

我遇到了同样的问题。尽管您的实施会略有不同,但您需要的答案(可能不是您正在寻找的答案)是使用 "bulk import" 功能。

由于 ArangoDB 没有 "official" Python 驱动程序(据我所知),您将不得不仔细阅读其他资源以了解如何解决此问题。

  • HTTP bulk import/export docs provide curl commands, which can be neatly translated to Python web requests. Also see the section on headers and values.

  • ArangoJS 有一个 bulk import 函数,它与对象数组一起工作,因此不需要特殊处理或准备。

我也用过arangoimport tool to great effect. It's command-line, so it could be controlled from Python, or used stand-alone in a script. For me, the key here was making sure my data was in JSONL或"JSON Lines"格式(文件的每一行都是一个自包含的JSON对象,没有边界数组或逗号分隔符)。

经过反复试验,我发现答案就在我面前。所以我不需要导入 .json 文件,我只需要阅读它然后批量导入文档。代码是这样的:

a = db.collection('collection_name')
for x in list_of_json_files:
    with open(x,'r') as json_file:
        data = json.load(json_file)
        a.import_bulk(data)

所以其实很简单。在我的实现中,我从多个文件夹中收集 .json 文件并将它们导入到多个集合中。我正在使用 python-arango 5.4.0 驱动程序