How can I get the "value" values ​​in all the "type: Number"?

{ "string": "сколько будет 2 прибавить два ?", "tokens": [ { "type": "Text", "substring": "сколько будет", "value": "сколько будет" }, { "type": "Number", "substring": "2", "value": 2 }, { "type": "Text", "substring": "прибавить", "value": "прибавить" }, { "type": "Number", "substring": "два", "value": 2 }, { "type": "Text", "substring": "?", "value": "?" } ] } 
  • 2
    How did you try and what exactly did you fail? - Sergey Gornostaev
  • Elementary cycle can be - Vladimir Martyanov
  • [x['value'] for x in вашжсон['tokens'] if x['type'] == 'Number'] - andreymal
  • jq '.tokens[] | select(.type=="Number") | .value' jq '.tokens[] | select(.type=="Number") | .value' - jfs

2 answers 2

 import json jsonString = '{"string":"сколько будет 2 прибавить два ?","tokens":[{"type":"Text","substring":"сколько будет","value":"сколько будет"},{"type":"Number","substring":"2","value":2},{"type":"Text","substring":"прибавить","value":"прибавить"},{"type":"Number","substring":"два","value":2},{"type":"Text","substring":"?","value":"?"}]}' arr = json.loads(jsonString) result = [] for item in arr['tokens']: if item['type'] == 'Number': result.append(item['value']) 

    Using the Pandas module:

     import pandas as pd import json res = (pd.DataFrame(json.loads(jstring)['tokens']) .query("type=='Number'")['value'] .tolist()) 

    Result:

     In [151]: print(res) [2, 2]