Это не относится к делу. Я обновлю свой ответ, когда станет известно больше о том, что на самом деле пытается анализировать OP на внешнем интерфейсе. Что более вероятно, так это то, что строка JSON в OP искажается где-то по пути к JSON.parse(...)
и отсутствует некоторая часть действительного объекта JSON.
population_count = [
{'name': 'Year 1800', 'data': '[107, 31, 635, 203, 2]'},
{'name': 'Year 1900', 'data': '[133, 156, 947, 408, 6]'},
{'name': 'Year 2012', 'data': '[1052, 954, 4250, 740, 38]'}
]
Действительный JSON требует, чтобы не было запятых и парантезов.
import json
population_count = [
{'name': 'Year 1800', 'data': '[107, 31, 635, 203, 2]'},
{'name': 'Year 1900', 'data': '[133, 156, 947, 408, 6]'},
{'name': 'Year 2012', 'data': '[1052, 954, 4250, 740, 38]'},
]
population_count_js = json.dumps(population_count)
print(population_count)
Результат выполнения в python 3.6.1 repl:
({'name': 'Year 1800', 'data': '[107, 31, 635, 203, 2]'}, {'name': 'Year 1900', 'data': '[133, 156, 947, 408, 6]'}, {'name': 'Year 2012', 'data': '[1052, 954, 4250, 740, 38]'})