У меня есть JSON-файл, отформатированный как это: (многострочный для ясности)Использование питона, чтобы изменить формат файла Json
(линия 0001) .......
{
"_id": "iD_0001",
"skills": [{
"name": "Project Management"
}, {
"name": "Business Development"
}]
}
.... (строка 9999)
{
"_id":"iD_9999",
"skills": [{
"name": "Negotiation"
}, {
"name": "Banking"
}]
}
Я хотел бы запустить программу на нем, однако, программа не может прочитать его под вышеупомянутым форматом. Таким образом, я хотел бы изменить свой формат:
[{
"_id": "iD_0001",
"skills": [{
"name": "Project Management"
}, {
"name": "Business Development"
}]
},{
"_id":"iD_9999",
"skills": [{
"name": "Negotiation"
}, {
"name": "Banking"
}]
}]
по существу, вкладывая все записи в одном массиве. Есть ли способ реализовать это с помощью Python или demjson?
ALTERNATIVE: Я создал программу, которая извлекает навыки в этих json-файлах и отправляет их в текстовый файл (Test.txt), однако он работает только для второго формата, а не для первого. Можете ли вы предложить модификацию, чтобы заставить ее работать для первого формата (см. Выше)? Это моя программа:
import json
from pprint import pprint
with open('Sample.json') as data_file:
data = json.load(data_file)
with open('Test.txt', 'w') as f:
for x in data:
for y in x["skills"]:
f.write(y["name"])
f.close()
РЕШЕНИЯ
Спасибо Антти Haapala для заметив катенации объектов JSon в рамках первого формата, а также Walter Витцель и Джош J предложившего альтернативных ответов , Поскольку первый формат является привязкой к отдельным объектам, программа хорошо работает, если мы загрузим первый файл Json Линия-по-линии вместо всего. Я сделал это с:
data = []
with open('Sample1-candidats.json') as data_file:
for line in data_file:
data.append(json.loads(line))
with open('Test.txt', 'w') as f:
for x in data:
for y in x["skills"]:
f.write(y["name"])
f.close()
Первый - это не один файл JSON. 'json.load' загружает только один объект из файла за раз. Первый - это привязка нескольких объектов JSON. –
Пожалуйста, проверьте это: http://stackoverflow.com/questions/8730119/retrieving-json-objects-from-a-text-file-using-python –
В вашем файле примера есть литеральный '.....'между каждой записью или вы использовали это в качестве примера для сокращения копии/вставки? –