Есть две проблемы:
вы проверяете тип OrderedDict
, но это, вероятно, относится к используемой вами версии Python; в Python 3.x вместо этого вы можете проверить dict
;
aaa1
и аналогичные значения находятся внутри списка, между []
, и это то, что вы видя как выход.
Это то, что вы должны сделать, чтобы проверить это тоже:
def check1(json_struct):
for k, v in json_struct.items():
if isinstance(v, OrderedDict):
check1(v)
elif isinstance(v, list):
for e in v:
check1(e)
else:
print "{0} : {1}".format(k, v)
Вам может потребоваться dict
вместо OrderedDict
, при использовании версий Python 3.
Используя то, какая Руна Гримстад сказала, что я заканчиваю с этим:
string executablePath = Path.GetDirectoryName(Application.ExecutablePath);
string[] directories = Directory.GetDirectories(executablePath);
foreach (string s in directories)
{
try
{
DirectoryInfo langDirectory = new DirectoryInfo(s);
cmbLanguage.Items.Add(CultureInfo.GetCultureInfo(langDirectory.Name));
}
catch (Exception)
{
}
}
или иначе
int pathLenght = executablePath.Length + 1;
foreach (string s in directories)
{
try
{
cmbLanguage.Items.Add(CultureInfo.GetCultureInfo(s.Remove(0, pathLenght)));
}
catch (Exception)
{
}
}
я все еще не думаю, что это - хорошая идея...
Я не уверен в получении языков, возможно, можно просканировать папку установки для dll-файлов, но установка языка на неподдерживаемый язык не должна быть проблемой.
.NET будет нейтрализация к культуре нейтральные ресурсы, если никакая культура, определенные файлы могут быть найдены так Вами, не может безопасно выбрать неподдерживаемые языки.
, пока Вы управляете приложением сами, Вы могли просто сохранить доступные языки в параметре настройки приложения где-нибудь. Просто разделенная от запятой строка с именами культуры должна быть достаточной: "en, es"