Я тестирую способность сохранять результаты PyTest, генерируемые плагином json для этого тестового набора, в ArangoDB. Я пытаюсь выполнить импорт следующим образом:
import pyArango.connection as adbConn
dbConn = adbConn.Connection(...)
db = dbConn['mydb']
collection = db.collections['PyTestResults']
collection.bulkImport_json('/path/to/results.json')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.8/site-packages/pyArango/collection.py", line 777, in bulkImport_json
errorMessage = "At least: %d errors. The first one is: '%s'\n\n more in <this_exception>.data" %
(len(data), data[0]["errorMessage"])
TypeError: string indices must be integers
Что не имеет смысла, так это то, что файл JSON сформирован правильно. Фактически, используя обычный модуль Python JSON, он работает просто отлично:
import json
with open('/path/to/results.json') as fd:
data = json.load(fd)
print(data)
Это работает. Начало файла:
{"report":
{"environment":
{
"Python": "3.6.9", "Platform": "Linux-4.4.0-17763-Microsoft-x86_64-with-Ubuntu-18.04-bionic"
},
Кажется, что библиотека pyArango
хочет, чтобы ключи были целыми числами. Я пробовал это, то есть я пытался изменить "report"
на 0
. Однако это привело к аннулированию структуры JSON.
Как использовать библиотеку pyAran go для импорта JSON? Общая структура этого JSON файла не сильно отличается от любого из примеров на этой странице . Любые указатели очень ценятся.