Простой C++ [закрытый] синтаксический анализатор MIME

Это шаги, чтобы получить решение:

  1. преобразовать значения периода в числа
  2. добавить столбец, где значения являются комбинацией года и периода
  3. построить временной ряд

И это код:

import pandas as pd
from datetime import datetime

df = {0: {"series id":"CUUR0000SA0", "year":2014, "period":"M12", "value":234.812},
        1: {"series id":"CUUR0000SA0", "year":2014, "period":"M11", "value":236.151},
       2: {"series id":"CUUR0000SA0", "year":2014, "period":"M10", "value":237.433},
       3: {"series id":"CUUR0000SA0", "year":2014, "period":"M09", "value":238.031},
       4: {"series id":"CUUR0000SA0", "year":2014, "period":"M08", "value":237.852},
       }

d = {'M01':1,
     'M02':2,
     'M02':3,
     'M04':4,
     'M05':5,
     'M06':6,
     'M07':7,
     'M08':8,
     'M09':9,
    'M10':10,
    'M11':11,
    'M12':12,}

df = pd.DataFrame.from_dict(df, orient="index")
df.period = df.period.map(d)

df['date'] = pd.to_datetime(df.year.astype(str) + '/' + df.period.astype(str) + '/01')

df.plot(x='date', y='value')
6
задан Brian Webster 21 February 2013 в 03:08
поделиться

2 ответа

Я знаю, что это может быть слишком мало, слишком поздно, но у меня была подобная потребность. Я хотел синтаксический анализатор пантомимы, который просто сделал кодирование и декодирование MIME. Ради полноты и для способности Google я думал, что должен поместить свои результаты здесь. Следует иметь в виду, что я не интересовался, отправляют и почта получения, просто кодируя и декодируют MIME. Вот библиотеки, я исследовал для C++ MIME:

http://www.vmime.org/ - Похож на слишком много. Содержит поп, SMTP, tls, IMAP, мог удалить это. Posix и окна.

http://codesink.org/mimetic_mime_library.html - выглядит многообещающим. Очень хороший API для чтения в и создания сообщений. Пошел с этим. Не слишком тяжелый. Должен был “починить” 2 вещи. Сначала для многослойного код был просто проверкой на “многослойную” строку и не распознал “многослойный/смешанный” и не выписал части. Во-вторых, я должен был взломать mimeentity, пишут код. Это просто выписывало станд.:: Поле двухсторонней очереди и так как это строки, которые это, кажется, делает так в алфавитном порядке. Это - проблема, потому что версия MIME должна быть первым выписанным полем. Таким образом, я зафиксировал это. Я также должен был добавить поддержку Довольной Длины.

http://www.mozilla.org/mailnews/arch/libmime-description.html - Трудное время находя это. Должен был загрузить целый пакет. mailnews\mime\src

http://www.example-code.com/vcpp/smime.asp - Не рассматривал, потому что это не имело никакого исходного кода и было конкретными окнами.

http://www.scalingweb.com/mime_parser.php - Не рассматривал, потому что это зависит от другой потоковой библиотеки от автора.

http://httpd.apache.org/docs/2.2/mod/mod_mime.html - Не удалось найти эту реализацию C.

Я выбрал Mimetic для своих потребностей, хотя я должен был добавить несколько вещей к нему. Ни один из синтаксических анализаторов я нашел обработанным дополнительные поля (Довольная длина, и т.д.) очень хорошо. Мне также был нужен он для поддержки нескольких платформ (Windows, Linux, и т.д.)

16
ответ дан 8 December 2019 в 04:32
поделиться

Для не сигналения мой собственный рог здесь, но GMime является очень полным синтаксическим анализатором MIME, записанным в C, который может обработать заголовок Довольной Длины. Это также обрабатывает DOS и окончания строки UNIX легко, поврежденную кодировку набора символов заголовка дескрипторов, не требует, чтобы Вы прочитали все сообщение в RAM, PGP/MIME поддержек, и т.д. Это также имеет очень исчерпывающий набор модульных тестов, которые я использую для предотвращения любых регрессий.

Люди создавали его в Windows долгое время теперь (под cygwin и/или mingw32 afaik), но прошлая неделя или таким образом, я проводил время, делая Windows первоклассным приоритетом путем установки файлов Проекта/Решения Visual C++ и проверки, что все создает.

Изображенный я отправил бы даже при том, что Вы уже нашли синтаксический анализатор MIME именно так другими людьми, у которых может быть подобный вопрос, мог бы видеть другую опцию, если вышеупомянутые решения не удовлетворяют своим потребностям.

8
ответ дан 8 December 2019 в 04:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: