Я довольно новичок в JSON, и в настоящее время у меня есть список ~ 130 файлов JSON, которые я получил, загрузив свои данные сообщений в Facebook.В настоящее время я пытаюсь использовать JQ, чтобы объединить их все в один файл json, сохраняя при этом существующий порядок сообщений, однако я сталкиваюсь с ошибками при попытке ввода команд в Windows.Я пытался следовать их советам для Windows в FAQ и все еще сталкиваюсь с проблемами.
Все файлы имеют одинаковую структуру
{
"participants": [
{
"name": "Participant One"
},
{
"name": "Participant Two"
}
],
"messages": [
{
"sender_name": "Participant One",
"timestamp_ms": 99999999999,
"content": "message content",
"type": "Generic"
},
{
"sender_name": "Participant Two",
"timestamp_ms": 9999999999,
"content": "message content",
"type": "Generic"
}
],
"title": "chat title",
"is_still_participant": true,
"thread_type": "Regular",
"thread_path": "thread path"
}
Если возможно с JQ, я бы хотелобъедините только «сообщения» в один файл JSON, сохраняя их в существующем порядке.Сообщения - это единственные данные в этих файлах, которые мне нужны для моих целей.
- Правка - Очень жаль из-за отсутствия деталей в исходном сообщении.Я попытался несколько команд, которые я нашел здесь и в других местах:
jq -s "[.[][]]" a-*.json > output.json
jq -s "{ attributes: map(.attributes[0]) }" file*.json > output.json
jq -s "*" *.json > output.json
Я также попытался поместить этот код в текстовый файл и запустить его с помощью: jq -f filename Но ятакже получаю ошибки
Я получаю следующие ошибки:
jq: error: Could not open file *.json: Invalid argument
или
jq: error: syntax error, unexpected INVALID_CHARACTER, expecting $end (Windows cmd shell quoting issues?) at <top-level>
Что касается более подробной информации о выводе, который я пытаюсьдостичь: я использую JQ 1.5.Меня не волнует порядок добавления файлов JSON друг к другу, пока сообщения остаются в правильном порядке, чтобы я мог получить четкие определенные пары сообщение / ответ.Мне также все равно, если все это будет объединено, и я должен отделить сообщения по-другому.Что-то вроде этого было бы моим идеальным выводом:
"messages": [
{
"sender_name": "Participant One",
"timestamp_ms": 99999999999,
"content": "message content",
"type": "Generic"
},
{
"sender_name": "Participant Two",
"timestamp_ms": 9999999999,
"content": "message content",
"type": "Generic"
},
{
"sender_name": "Participant Three",
"timestamp_ms": 9999999999,
"content": "message content",
"type": "Generic"
},
{
"sender_name": "Participant Two",
"timestamp_ms": 9999999999,
"content": "message content",
"type": "Generic"
}
]
Где участник два представляет мои ответы на сообщения, а другие участники - это люди, с которыми я общаюсь (как в оригинальном JSONвывод из фейсбука)