Попробуйте это:
message = { "source": "datapipeline",
"application_nm": "omni",
"severity": "2",
"batch_run_start_dttm": "$actualStartTime",
"batch_run_end_dttm": "actualEndTime",
"batch_run_status_cd": "failed",
"job_orchestration_id": "NA",
"stage_nm": "NA",
"stage_start_dttm": "NA",
"stage_end_dttm": "NA",
"stage_status_cd": "failed",
"job_run_id": "NA",
"source_nm": "NA",
"target_nm": "NA",
"source_details": "NA",
"target_details": "NA",
"msg": "These mentioned hours having difference more than 50% from previous week:" +"%s" ,
"counts":"0",
"notes": "After hourly comparison check, the above mentioned hours is having difference more than 50%",
"list": list # this is how to do it
}
Кстати, очень плохая идея назвать переменную «list», которая конфликтует со встроенной функцией list()
.
Если Вы имеете дело с использованием, внутренним к программе, не волнуйтесь об этом; wchar_t в классе A совпадает с в классе B.
Если Вы планируете передать данные между Windows и версиями Linux/MacOSX, у Вас есть больше, чем wchar_t для волнения о, и необходимо придумать средства обработать все подробности.
Вы могли определить тип, который Вы определите, чтобы быть четыре байта везде и реализовать Ваши собственные строки, и т.д. (так как большая часть текстовой обработки в C++ является шаблонной), но я не знаю, как хорошо, который работал бы на Ваши потребности.
Что-то как typedef int my_char; typedef std::basic_string<my_char> my_string;
Что Вы подразумеваете "под портативным wchar_t"? Существует a uint16_t
введите, который 16 битов шириной везде, который часто доступен. Но это, конечно, еще не составляет строку. Строка должна знать о своем кодировании для понимания функций как length()
, substring()
и так далее (таким образом, это не сокращает символы посреди кодовой точки при использовании utf8 или 16). Существуют некоторые unicode совместимые строковые классы, которые я знаю, которых можно использовать. Все могут использоваться в коммерческих программах бесплатно (QT, каждый будет совместим с коммерческими программами бесплатно через несколько месяцев, когда Qt 4.5 будет выпущен).
ustring
от gtkmm
проект. Если Вы программируете с gtkmm или используете glibmm, который должен быть предпочтительным вариантом, он использует utf-8
внутренне. Qt
также имеет строковый класс, названный QString. Это кодируется в utf-16
. ICU
другой проект, который создает портативные unicode строковые классы и имеет a UnicodeString
класс, который внутренне, кажется, кодируется в utf-16, как QT. Не использовали тот все же.