【发布时间】:2019-03-16 06:36:35
【问题描述】:
根据该部分,我正在尝试解析我的数据并将它们转换为多个 csv 文件。
示例 JSON
{
"content": [
{
"Title": "abc",
"brand": "xyz",
"size": "5 g",
"date": "2019-01-01",
"details": {
"Temperature": [
{
"value": "90",
"chracterstics":"Normal"
},
{
"value":"100",
"chracterstics":"high"
},
{
"value":"80",
"chracterstics":"low"
}
],
"certifications": [
{
"value": "based",
"chracterstics":"pass"
},
{
"value": "50",
"chracterstics":"failed"
}
]
},
"formats": {
"city": "NYC",
"id": "007",
"manufacture":""
},
"innerDetails": [
{
"contains": "abc",
"panel":"xyz",
"values":[
{
"name":"abc",
"value":"10"
},
{
"name":"xyz",
"value":"20"
}
]
}
]
}
]
}
我正在尝试将内容数据放入一个 csv 文件中,将温度数据放入第二个 csv 文件中,将认证放入第三个文件中,将格式和内部详细信息数据放入另一个单独的文件中.
我尝试了以下方法,但出现“Cannot index array with string "brand"”错误。
jq -r '.[]|[.Title,.brand,.size,.date]|@csv' $jsonfile > sample.csv.
我尝试与其他部分在同一行,但得到相同的错误。
我该如何解决这个问题?
【问题讨论】:
-
JSON 不完全有效。将其粘贴到jsonlint.com 并查看错误
-
我可以使用 jq -r '.content[]|[.Title,.brand,.size,.date]|@csv' $jsonfile > sample.csv 得到结果,但是我想知道有没有办法根据标题获取详细信息。因为,我有非常大的 json 文件,该文件有点类似于示例文件。例如使用内容标题的内容详细信息,使用innerDetails标题的innerDetails,使用格式标题的格式详细信息。
-
要解析这个json,需要将“content”放在引号中,并且需要在这个sn-p的末尾加上“}] }”。