[英]Parsing JSON using jq or Python
我有這個嵌套的 JSON
[
"[[Input=[Name=ABC, createDateTime=2019-30-11, RollNumber=9]]]",
"[[SubjectList=[Summer=, Winter=, Autumn=, Spring=, rList=, sList=, additionalList=, emailList=, FoodList=, sAssignmentList=, summerworkList=, outdoorList=, movielist=]]]",
"[ProcessingDate=2018-10-06]",
"[Hobbies=Football]",
"[Phone=Android,,]"
]
如何處理這個 JSON 並使用 Python 獲得價值 football 或 rollnumber?
這是我嘗試過的:
代碼
import json
row = '''[
"[[Input=[Name=ABC, createDateTime=2019-30-11, RollNumber=9]]]",
"[[SubjectList=[Summer=, Winter=, Autumn=, Spring=, rList=, sList=, additionalList=, emailList=, FoodList=, sAssignmentList=, summerworkList=, outdoorList=, movielist=]]]",
"[ProcessingDate=2018-10-06]",
"[Hobbies=Football]",
"[Phone=Android,,]"
]'''
row_dict = json.loads(row)
print(row_dict[3])
使用這個 - 我得到以下 output:
[愛好=足球]
但是我缺少下一級解析來獲得足球,如 output
這是一種在數組中的非 json 字符串上使用capture
的方法。
它假定[:alnum:]
posix 正則表達式字符 class 足以匹配 = 之后的值
假設test.json
中的數據的示例執行
$ jq -M '.[] | capture("Hobbies=(?<Hobbies>[[:alnum:]]+)")' test.json
{
"Hobbies": "Football"
}
這是一個准確產生Football
的變體:
$ jq -Mr '.[] | capture("Hobbies=(?<Hobbies>[[:alnum:]]+)") | .Hobbies' test.json
Football
這是一個示例腳本,它使用多個捕獲並將它們與add
相結合
[ .[]
| capture("Hobbies=(?<Hobbies>[[:alnum:]]+)")
, capture("RollNumber=(?<RollNumber>[[:alnum:]]+)")
] | add
test.jq
中假設腳本的示例執行
$ jq -M -f test.jq test.json
{
"RollNumber": "9",
"Hobbies": "Football"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.