Нет, Python не использует JSON изначально.Этот материал, который вы считаете JSON, фактически представляет собой словарь, один из множества видов объектов в Python.(Простой) синтаксис для создания словаря в Python довольно близок к JSON, но он является случайным.Так как вы можете создать словарь следующим образом:
a = {'a' : 2, 'b' : 3}
, вы также можете создать его следующим образом:
a = dict([('a', 2), ('b', 3)]);
Итак, чем же так похожи синтаксисы?Хорошо, синтаксис JSON вдохновлен синтаксисом JavaScript для массивов.Вполне вероятно, что синтаксис JavaScript также вдохновил способ написания словарей Python или наоборот.Но никогда не допускайте, чтобы эти три синтаксиса - дикты JavaScript, JSON и Python - были одинаковыми или взаимозаменяемыми.
Учитывая это, почему бы вам не использовать eval()
для преобразования JSON в словарь?Во-первых, поскольку eval()
может делать что-либо в Python - например, выход из программы, удаление файла, изменение некоторых внутренних данных и т. Д. И т. Д. Следовательно, используя eval()
, вы можете сделать себя уязвимыми для внедрения кода , в зависимости от того, как вы его используете.Кроме того, использование eval()
для преобразования JSON в dict предполагает, что синтаксис обоих одинаков - что не всегда верно;даже если синтаксис был идентичен, он не может быть в будущем.Наконец, есть гораздо лучший и более практичный способ анализа JSON: модуль json
:
>>> import json
>>> json.loads('{"a":1}')
{'a': 1}
Используйте его для анализа вашего JSON.
Удачи!