Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将目录中的所有JSON文件合并为一个文件-Windows_Json_Windows_Jq - Fatal编程技术网

将目录中的所有JSON文件合并为一个文件-Windows

将目录中的所有JSON文件合并为一个文件-Windows,json,windows,jq,Json,Windows,Jq,我对JSON还相当陌生,目前我有一个约130个JSON文件的列表,这些文件是我通过下载Facebook消息数据收到的。我目前正试图使用JQ将它们连接到一个json文件中,同时保持现有的消息顺序不变,但是当我尝试在Windows上输入命令时遇到了错误。我试图在常见问题解答中遵循他们对Windows的建议,但仍然遇到问题 所有文件都有相同的布局 { "participants": [ { "name": "Participant One" }, {

我对JSON还相当陌生,目前我有一个约130个JSON文件的列表,这些文件是我通过下载Facebook消息数据收到的。我目前正试图使用JQ将它们连接到一个json文件中,同时保持现有的消息顺序不变,但是当我尝试在Windows上输入命令时遇到了错误。我试图在常见问题解答中遵循他们对Windows的建议,但仍然遇到问题

所有文件都有相同的布局

{
  "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文件名 但我也收到了错误

我遇到的错误有:

jq: error: Could not open file *.json: Invalid argument


其中,参与者2表示我对消息的响应,其他参与者是我正在与之对话的人(这在Facebook的原始JSON输出中是这样的)

您可以从以下命令行调用开始:

jq -n "[inputs | .messages] | add" *.json 
这有许多假设。如果windows shell不支持通配符扩展,请参阅和/或

其他假设是您使用的是JQ1.5或更高版本,当然,当前目录中的所有*.json文件都是相关的,并且*.json按所需顺序列出它们


如果JSON文件的顺序最好通过显式列出它们来确定,那么您可能需要创建一个批处理文件。如果它们的排序是由它们的内容决定的,那么您可以使用jq为您排序,但具体操作方式将取决于有关排序标准的详细信息。

请尽可能遵循指南。如果不知道所需的组合是什么样子,就很难提供具体的建议。出于好奇,这些数据是动态的还是只需要提前组合文件?我也有类似的需求,只是使用powershell创建JSON文件供以后使用。我们不是代码编写服务。我们很乐意提供帮助,但您没有包括在Windows中尝试输入命令时所做的操作,也没有包括收到的错误消息。如果你不告诉我们你在做什么,我们如何帮助你找出它们为什么不起作用?在我最初的回复中添加了更多细节,我对在这个网站上发布我自己的问题很陌生,所以我很抱歉在我最初的帖子中缺少细节。@CodeWasted此数据不会是动态的,我需要提前将其组合起来,以便将其转换为我正在进行的机器学习项目的数据源。我的命令行指向包含所有JSON文件的目录,但我遇到了以下错误:“jq:error:无法打开文件*.JSON:无效参数”我以前在尝试几个命令时收到了这个错误。我在Windows上安装了Ubuntu,所以我可以访问linux shell,这个响应非常有效。我使用了“jq-n”[inputs |.messages]| add'*.json>output.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"
    }
  ]
jq -n "[inputs | .messages] | add" *.json