У меня есть каталог, в который часто сбрасывается набор текстовых файлов, которые выглядят так:
- FILEA.json
- FILEB.json
- FILEC.json
Каждый файл содержит «массив» JSON, который выглядит следующим образом:
[
{
"id" : "blah",
"type" : "thingy",
"ip" : "10.0.0.1",
"extended" : {
"var1" : "blah"
}
},
{
"id" : "blah2",
"type" : "thingy",
"ip" : "10.0.0.2",
"extended" : {
"var1" : "blah"
}
}
]
Я хотел бы знать, каков наиболее эффективный способ чтения этих файлов и сохранения каждой отдельной строки JSON в массив для дальнейшей обработки. Я посмотрел на json.load () , но кажется, что он читается в отдельных строках JSON, а не в «массиве» строк.
Одним из возможных решений может быть зачеркнуть конечные скобки и разделить каждый объект JSON через регулярное выражение?
РЕДАКТИРОВАТЬ: добавить пример кода:
json_array = []
for filename in sorted(os.listdir(CONFIG.DATA_DIR)):
m = re.match('^.*\.JSON$', filename)
if m:
data = json.load(open(CONFIG.DATA_DIR+filename))
for item in data:
json_array.append(item)
return json_array