i've found that unlike original scanf(), the json_scanf() does not support "scanset" feature. Eg.: json_scanf(in, sizeof(in), "{ str:%30[0-9a-zA-Z ] }", out); should scan string of up to 30 characers ...
Python has powerful regular expressions but they can be totally overkill for many simpler situations. Additionally, some common numerical formats require quite complex regex's to match them robustly.