Поддержка основных параметров запроса HTTP предоставляется в модуле CGI
. Рекомендуемым механизмом обработки данных формы является класс cgi.FieldStorage
.
Чтобы получить данные в форме отправки, лучше всего использовать класс
FieldStorage
. Другие классы, определенные в этом модуле, предоставляются в основном для обратной совместимости. Создайте его ровно один раз, без аргументов. Это считывает содержимое формы из стандартного ввода или среды (в зависимости от значения переменных среды, заданных в соответствии со стандартом CGI). Поскольку он может потреблять стандартный ввод, он должен быть создан только один раз.Экземпляр
FieldStorage
может быть проиндексирован как словарь Python. Он позволяет тестировать членство с оператором in, а также поддерживает стандартный метод словаkeys()
и встроенную функциюlen()
. Поля формы, содержащие пустые строки, игнорируются и не отображаются в словаре; чтобы сохранить такие значения, предоставить истинное значение для необязательного параметра ключевого слова keep_blank_values при создании экземпляраFieldStorage
.Например, следующий код (который предполагает, что заголовок Content-Type и пустая строка уже был напечатан) проверяет, что имена полей и addr оба установлены в непустую строку:
blockquote>form = cgi.FieldStorage() if "name" not in form or "addr" not in form: print "
Error
" print "Please fill in the name and addr fields." return print "name:", form["name"].value print "
addr:", form["addr"].value #...further form processing here...
это решается путем первого преобразования списка в байтовые массивы.
rList = [1, 2, 3, 4, 5]
arr = bytes(rList)
print(arr)
результат -
b'\x01\x02\x03\x04\x05'
Рассматривали ли вы кодировку JSON? Если вы сконфигурируете свой KafkaProducer с параметром value_serializer следующим образом:
KafkaProducer(value_serializer=lambda v: json.dumps(v).encode('utf-8'))
, то вы сможете отправлять свои списки напрямую следующим образом:
producer.send('test', [1, 2, 3])
producer.send('test', ["cat", "dog", "fish"])
Потребители должны быть настроены на декодировать через JSON, а также. Если вы используете kafka-python, вы можете сделать что-то вроде:
KafkaConsumer(value_deserializer=lambda v: json.loads(v.decode('utf-8')))