json
хорош для сериализации списков / диктов / чисел / строк:
import json
My_list = [['Hello', 'World', 0], ['Pretty', 'World', 1], ['Tired', 'World', 2]]
#write to file
with open("data.json", "w") as file:
json.dump(My_list, file)
#read from file
with open("data.json") as file:
new_list = json.load(file)
print(new_list)
Результат:
[['Hello', 'World', 0], ['Pretty', 'World', 1], ['Tired', 'World', 2]]
Повышение. Поток имеет довольно много возможных комбинаций сборки, чтобы попытаться обслужить все различия в соединении сценариев, возможных с MSVC. Во-первых, можно или связаться статически для Повышения. Поток или ссылка на Повышение. Поток в отдельном DLL. Можно затем связаться с версией DLL времени выполнения MSVC или статического времени выполнения библиотеки. Наконец, можно связаться со временем выполнения отладки или временем выполнения выпуска.
Повышение. Заголовки потока пытаются автоматически обнаружить сценарий сборки с помощью предопределенных макросов, которые генерирует компилятор. Для соединения против версии, которая использует время выполнения отладки, Вы должны иметь _DEBUG
определенный. Это автоматически определяется / MD и/MDd переключателями компилятора, таким образом, он должен быть в порядке, но Ваше описание проблемы предлагает иначе.
Где Вы получали предварительно созданные двоичные файлы от? Вы явно выбираете библиотеку в своих настройках проекта, или Вы позволяете механизму автоссылки выбрать соответствующий .lib файл?
Я полагаю, что у меня была эта та же проблема с Повышением прошлого. От моего понимания это происходит, потому что заголовки Повышения используют инструкцию по препроцессору связаться против надлежащего lib. Если Ваши библиотеки отладки и выпуска будут в той же папке и будут иметь различные имена, то функция "автоссылки" не будет работать правильно.
То, что я сделал, определяют BOOST_ALL_NO_LIB для моего проекта (который предотвращает заголовки от "автоматического соединения"), и затем используйте настройки проекта VC для соединения против корректных библиотек.
Это - классическая ошибка ссылки. Похоже на соединение с Повышением DLL, который самого связывается с неправильным временем выполнения C++ (существует также эта страница, сделайте текстовый поиск "потоков"). Это также похоже boost::posix::time
библиотека связывается с корректным DLL.
К сожалению, я не нахожу страницу, которая обсуждает, как выбрать правильно созданное Повышение DLL (хотя я действительно находил трехлетнее электронное письмо, которое, кажется, указывает на BOOST_THREAD_USE_DLL
и BOOST_THREAD_USE_LIB
).
Смотря на Ваш ответ снова, кажется, что Вы используете предварительно созданные двоичные файлы. DLL, с которым Вы не можете связаться, является частью пакета функций TR1 (второй вопрос на той странице). Тот пакет функций доступен на веб-сайте Microsoft. Или Вам будет нужен другой двоичный файл для соединения против. По-видимому, boost::posix::time
библиотека связывается против неисправленного времени выполнения C++.
Так как Вы уже применили пакет функций, я думаю следующий шаг, который я сделал бы, должен будет создать Повышение вручную. Это - путь, который я всегда брал, и это очень просто: загрузите двоичный файл BJam и запустите скрипт Сборки Повышения в источнике библиотеки.Именно.
Теперь это стало еще немного более интересным... Если я просто добавляю это где-нибудь в источнике:
boost::posix_time::ptime pt = boost::posix_time::microsec_clock::universal_time();
(вместе с соответствием #include
материал), затем это снова работает хорошо. Таким образом, это - одно быстрое и даже слишком грязное решение, но эй — что продолжается здесь, действительно?
Похож на других людей, ответила сторона Повышения проблемы. Вот немного вводной информации на стороне MSVC вещей, которые могут сохранить дальнейшую головную боль.
Существует 4 версии C (и C++) возможное время выполнения:
Версии DLL все еще требуют соединения с тем статическим lib (который так или иначе делает всю установку для соединения с DLL во времени выполнения - я не знаю детали). Уведомление во всей отладочной версии случаев имеет d
суффикс. Время выполнения C использует c
инфикс и время выполнения C++ используют cp
инфикс. Видеть шаблон? В любом приложении необходимо только когда-либо связываться с библиотеками в одной из тех строк.
Иногда (как в Вашем случае), Вы связываетесь с чужой статической библиотекой, которая настроена для использования неверной версии C или времени выполнения C++ (через ужасно раздражающий #pragma comment(lib)
). Можно обнаружить это путем поднимания многословия компоновщика путь, но это - реальный ЛАВАШ для поиска для. "Уничтожают грызуна с симметрирующим устройством" решение, должен использовать /nodefaultlib:...
компоновщику, устанавливающему для исключения 6 C и библиотеки C++, что Вы знаете Вас, не нужно. Я использовал это в прошлом без проблемы, но я не положителен, что это будет всегда работать..., возможно, кто-то выйдет из работы по дереву, говоря мне, как это "решение" может заставить Вашу программу есть младенцев по вторникам днем.
Из памяти различным частям библиотек повышения нужны Вы для определения некоторых флагов препроцессора, чтобы смочь скомпилировать правильно. Материал как BOOST_THREAD_USE_DLL
и так далее.
BOOST_THREAD_USE_DLL
не будет тем, что вызывает эту конкретную ошибку, но она может ожидать, что Вы определите _DEBUG
или что-то как этот. Я помню несколько лет назад в нашем повышении проекты C++, у нас были довольно многие дополнительные BOOST_XYZ
определения препроцессора объявляются в параметрах компилятора Visual Studio (или make-файл)
Проверьте config.hpp
файл в повышении распараллеливает каталог. Когда Вы сдерживаетесь ptime
материал это возможно включает другое config.hpp
файл, который может затем определить те вещи препроцессора по-другому.