Минимальный, Автономный, Распространяемый, кросс-платформенный веб-сервер

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

Вы можете легко преобразовать свои данные с помощью Power Query. Загрузите данные в Power Query Editor, затем разделите каждый столбец вопроса разделителем "," (запятая с последующим пробелом). При этом каждый ответ будет разбит на отдельный столбец, а вопрос в заголовке будет добавлен .1, .2 и т. Д.

Затем выберите столбец имени и нажмите «Удалить другие столбцы». Заголовки вопросов теперь будут в колонке атрибутов. Разделить этот столбец атрибута разделителем "." (точка) и удалите столбец с разделенными числами.

Наконец, переименуйте столбцы в «Вопрос и ответ».

Вот код М, который генерируется при этом.

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"like", type text}, {"dislike", type text}}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "dislike", Splitter.SplitTextByDelimiter(", ", QuoteStyle.Csv), {"dislike.1", "dislike.2", "dislike.3", "dislike.4", "dislike.5"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"dislike.1", type text}, {"dislike.2", type text}, {"dislike.3", type text}, {"dislike.4", type text}, {"dislike.5", type text}}),
    #"Split Column by Delimiter1" = Table.SplitColumn(#"Changed Type1", "like", Splitter.SplitTextByDelimiter(", ", QuoteStyle.Csv), {"like.1", "like.2", "like.3", "like.4"}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Split Column by Delimiter1",{{"like.1", type text}, {"like.2", type text}, {"like.3", type text}, {"like.4", type text}}),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type2", {"Name"}, "Attribute", "Value"),
    #"Split Column by Delimiter2" = Table.SplitColumn(#"Unpivoted Other Columns", "Attribute", Splitter.SplitTextByDelimiter(".", QuoteStyle.Csv), {"Attribute.1", "Attribute.2"}),
    #"Changed Type3" = Table.TransformColumnTypes(#"Split Column by Delimiter2",{{"Attribute.1", type text}, {"Attribute.2", Int64.Type}}),
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type3",{"Attribute.2"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Attribute.1", "question"}, {"Value", "Answer"}})
in
    #"Renamed Columns"

Полученная таблица выглядит следующим образом:

enter image description here

Если исходные данные получают больше строк, просто обновите запрос.

Теперь у вас есть таблица, которую можно использовать в сводных таблицах без ущерба для каких-либо данных.

8
задан S.Lott 31 January 2009 в 17:40
поделиться

2 ответа

Lighttpd имеет лицензию BSD, таким образом, необходимо смочь связать его, если бы Вы хотели.

Вы говорите, что для небольших приложений, таким образом, я предполагаю что средства, маленькие, локальные веб-интерфейсы отдельного пользователя, подаваемые маленьким http сервером? Если это, имеет место, то любая реализация Python должна работать. Просто используйте что-то как py2exe для упаковки его (на самом деле, был вопрос, касающийся упаковочных программ Python здесь на ТАК не слишком долго назад).

Обновление, ре: заголовок диапазона: Python по умолчанию http сервер не может поддерживать заголовок диапазона, который Вы хотите, но его довольно легкое для записи собственного обработчика или маленького wsgi приложения, чтобы сделать логику, особенно если все, что Вы делаете, передает файл потоком. Это не были бы слишком много строк:

def stream_file(environ, start_response):
  fp = open(base_dir + environ["PATH_INFO"])
  fp.seek(environ["HTTP_CONTENT_RANGE"]) # just an example
  start_response("200 OK", (('Content-Type', "file/type")))
  return fp
5
ответ дан 5 December 2019 в 20:20
поделиться

Что случилось с Apache + mod_wsgi? Apache является уже многоплатформенным; это часто уже устанавливало (кроме Windows).

Вы могли бы также хотеть посмотреть на lighttpd, существуют некоторые блоги при конфигурировании его для работы с WSGI. См. http://cleverdevil.org/computing/24/python-fastcgi-wsgi-and-lighttpd и http://redmine.lighttpd.net/issues/show/1523

3
ответ дан 5 December 2019 в 20:20
поделиться
Другие вопросы по тегам:

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