In the last 100 or so search queries I have performed, about 1 out of 10 queries do not have the google local data attached to them. For example, take a look at these searches
and here is the outputted HTML
The google local results are present on the html, but they are not present in the JSON result of that search query. Google seems to be trying different styles/formatting for google local, and it seems when google is using the updated styling (like in the link above) that SERP API is unable to scrape the local results.
I have more examples of this. Check out these JSON searches along with the outputted HTML
In the above links, the HTML shows the google my business (local) results, but does not include it in the JSON response.
However, when google is using the existing google my business (local) results, SERP API is able to scrape the results just fine like in this working example
Please let me know if I can answer any additional questions about this issue.