Search code examples
pythonparsingnested-listspyparsing

Python parse comma seperated nested brackets using Pyparsing


I want to parse a comma separated nested brackets into nested list:

from pyparsing import nestedExpr
str = r'[["http://google.com","Jose Rivas","http://google.com","some_guid"],"a year ago",null,null,4,null,"1003136023",["https://www.yahoo.com","Do it",null,"0ahU_pv"],null,null,"ChZDSUhNMG","0ahUKEwjBr"]'

z = nestedExpr('[', ']').parseString(str).asList()

this is what i get:

enter image description here

why do i get ',' (a single comma) as list item or ,null,null,null, for example? How to fix it?


Solution

  • It's a usual JSON, try to parse it with json package:

    import json
    
    raw = r'[["http://google.com","Jose Rivas","http://google.com","some_guid"],"a year ago",null,null,4,null,"1003136023",["https://www.yahoo.com","Do it",null,"0ahU_pv"],null,null,"ChZDSUhNMG","0ahUKEwjBr"]'
    data = json.loads(raw)
    
    print(data)