Создайте файл с именем NuGet.config рядом с файлом вашего решения со следующим содержимым
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="LocalPackages" value="./LocalPackages" />
</packageSources>
<activePackageSource>
<!-- this tells that all of them are active -->
<add key="All" value="(Aggregate source)" />
</activePackageSource>
</configuration>
Если решение открыто в Visual Studio, закройте его, а затем снова откройте.
Теперь ваши пакеты должны появиться в браузере или быть установлены с помощью Install-Package
Если вам удобно, что ваш скрипт какое-то время работает нормально, а затем случайно дает сбой в каком-то непонятном пограничном случае, я бы выбрал eval.
Если важно, чтобы ваш код был надежный, я бы потратил время, чтобы добавить simplejson. Вам не нужна часть C для ускорения, поэтому на самом деле не должно быть сложно выгрузить несколько файлов .py в какой-либо каталог.
В качестве примера того, что может вас укусить, JSON использует Unicode и возвращает simplejson Unicode, тогда как eval возвращает str:
>>> simplejson.loads('{"a":1, "b":2}')
{u'a': 1, u'b': 2}
>>> eval('{"a":1, "b":2}')
{'a': 1, 'b': 2}
Edit: лучший пример того, где eval () ведет себя по-другому:
>>> simplejson.loads('{"X": "\uabcd"}')
{u'X': u'\uabcd'}
>>> eval('{"X": "\uabcd"}')
{'X': '\\uabcd'}
>>> simplejson.loads('{"X": "\uabcd"}') == eval('{"X": "\uabcd"}')
False
Edit 2: видел сегодня еще одну проблему, на которую сегодня указал SilentGhost: eval не обрабатывает true -> True, false -> Ложь, ноль -> Нет правильно.
>>> simplejson.loads('[false, true, null]')
[False, True, None]
>>> eval('[false, true, null]')
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'false' is not defined
>>>
eval
Использование JSON немного похоже на попытку запустить XML через компилятор C ++.
eval
предназначен для оценки кода Python. Хотя есть некоторые синтаксические сходства, JSON не является кодом Python . Черт возьми, это не только не код Python , это не код для начала. Поэтому, даже если вам это сойдет с рук для вашего варианта использования, я бы сказал, что концептуально это плохая идея. Python - это яблоко, JSON - газировка со вкусом апельсина.
Суть лучших практик заключается в том, что в большинстве случаев игнорировать их - плохая идея. На вашем месте я бы использовал парсер для синтаксического анализа JSON в Python. Попробуйте simplejson , это было очень просто для синтаксического анализа JSON, когда я последний раз пробовал его, и он утверждает, что совместим с Python 2.4.
Я не согласен с тем, что не стоит доверять Google. Я бы не стал им доверять, но я бы проверил данные, которые вы от них получаете. Причина, по которой я бы на самом деле использовал парсер JSON, прямо в вашем вопросе:
Мои собственные (краткие) исследования показывают, что JSON является полностью допустимым Python, за исключением escape-последовательности "/", которую GC не делает Похоже, что не создается.
Почему вы думаете, что Google Code никогда не создаст подобную escape-последовательность?
Синтаксический анализ - это решаемая проблема, если вы используете правильные инструменты. Если вы попытаетесь использовать такие ярлыки, вы в конечном итоге столкнетесь с неверными предположениями или сделаете что-то вроде попытки собрать синтаксический анализатор с регулярными выражениями и логической логикой, когда синтаксический анализатор уже существует для выбранного вами языка.