Простой и читаемый фрагмент, используя lodash.
Вам нужно поместить ключ в кавычки только при вызове sortBy. Это не должно быть в кавычках в самих данных.
_.sortBy(myObj, "key")
Кроме того, ваш второй параметр для карты неверен. Это должна быть функция, но проще использовать pluck.
_.map( _.sortBy(myObj, "key") , "value");
Вот то, как я сделал это (захватывающий все файлы, заканчивающиеся в ".ranks"):
import urllib2, cStringIO, zipfile
try:
remotezip = urllib2.urlopen(url)
zipinmemory = cStringIO.StringIO(remotezip.read())
zip = zipfile.ZipFile(zipinmemory)
for fn in zip.namelist():
if fn.endswith(".ranks"):
ranks_data = zip.read(fn)
for line in ranks_data.split("\n"):
# do something with each line
except urllib2.HTTPError:
# handle exception
Примите во внимание, что просто распаковка zip-файла может привести к уязвимости системы обеспечения безопасности.
Спасибо, Марсель, за ваш вопрос и ответ (у меня была та же проблема в другом контексте, и я столкнулся с той же проблемой с файловыми объектами, которые на самом деле не похожи на файлы)! Просто в качестве обновления: для Python 3.0 ваш код необходимо немного изменить:
import urllib.request, io, zipfile
try:
remotezip = urllib.request.urlopen(url)
zipinmemory = io.BytesIO(remotezip.read())
zip = zipfile.ZipFile(zipinmemory)
for fn in zip.namelist():
if fn.endswith(".ranks"):
ranks_data = zip.read(fn)
for line in ranks_data.split("\n"):
# do something with each line
except urllib.request.HTTPError:
# handle exception