Есть, как всегда, несколько способов сделать свое дело.
Один из этих способов, предполагая, что на секунду здесь ключи JIRA, которые вам нужны, это только ключи выдачи, а не ключи project или projectCategory, - это использование itemgetter
:
from operator import itemgetter as itg
key_finder = itg('key')
my_values = list(map(key_finder, DICT_NAME['issues']))
itemgetter
функционирует как оболочка для понимания и по существу возвращает tuple(obj[i] for i in items)
, где items
- набор аргументов, переданных в itemgetter
. Следовательно, itemgetter('key', 'id')
обернет поиск для 'key'
и 'id'
, а функция, примененная к словарю, вернет значения 'key'
и 'id'
, в этом случае требуется только 'key'
.
map(function, iterable)
применяет function
последовательно к элементам в итерируемой, например, function(iterable[0]); function(iterable[1])
и т. Д.
В вашем случае с необходимостью многократно повторять цикл и объединять результаты:
from functools import reduce
issue_key_values = reduce(lambda x,y: x+y, [list(map(key_finder, ll['issues'])) for ll in jira_list])
Оператор редукции из строки документации:
Применить функцию двух аргументов кумулятивно к элементам последовательности слева направо, чтобы свести последовательность к одному значению.
blockquote>Другими шагами являются оценка выражений генератора и циклических представлений, которые вы можете найти в большом количестве материалов на этом сайте (и в Google).
Если Вы не расширяете sqlite с помощью своей собственной функции, необходимо будет сделать, это - код.
strftime функция форматирования даты sqlite только поддерживает небольшое подмножество своего дубликата C, недостаточного для Вашей проблемы. sqlite также испытывает недостаток в конструкции выбора как ЕСЛИ или СЛУЧАЙ, делая простым, если/еще невозможный.
Некоторый псевдо код для помощи Вам на пути:
if (hourpart of time >= 12)
subtract 12 from hours
append string " pm"
else // hourpart < 12
append string " am"
end if
В SQL можно выполнить это использование синтаксиса СЛУЧАЯ.
После более тщательно изучения проблемы:
SELECT (CASE HOUR(myTimeColumn) >= 12 WHEN 1 THEN
((HOUR(myTimeColumn) - 12) + '-' + MINUTE(myTimeColumn) + ' pm')
ELSE
(HOUR(myTimeColumn) + '-' + MINUTE(myTimeColumn) + ' am')
AS AmPmTime,
someOtherColumn
FROM myTable
Я не совсем уверен, что все это является допустимым синтаксисом SQLite, но необходимо смочь исправить ошибки.
Сделайте это в своем приложении. Сохраните его в нормальном 24-м формате в базе данных. В базе данных это может быть сохранено как запись Даты вместо строки (исправьте меня, если я неправ),
Как PoweRoy recomended, это принадлежит приложения.
Рекомендуется, чтобы любой вид данных, хранивших используемых в коммуникации, использовал стандартный, нечувствительный к локали формат: http://www.mihai-nita.net/article.php?artID=20051025a