Словарь Python с условием try или if?

Измените заголовок [client] на [mysqld]. Вам нужно настроить сертификаты на стороне сервера там, а не на стороне клиента.

См. Полный пример из документации MySQL.

Также см. Этот похожий вопрос: Связи с PHP для MySQL SSL

Сертификаты сервера позволяют серверу отвечать на запросы SSL, и они не требуют, чтобы клиент имел сертификат. Каждый раз, когда вы подключаетесь к веб-сайту через HTTPS, вы используете сертификаты сервера, чтобы убедиться, что вы подключаетесь к правильному серверу, и используете открытый ключ сертификата для шифрования.

Сертификаты клиента позволяют сервер для аутентификации клиента.

В вашем случае вам нужны сертификаты сервера. Вы хотите установить сертификаты на сервере (MySQL), а клиент (PHP) сможет аутентифицировать сервер и использовать открытый ключ сертификата для настройки шифрования. Сертификаты клиентов довольно редки.

Если вы хотите использовать клиентские сертификаты, вы должны использовать mysqli или PDO .

0
задан Michal 27 February 2019 в 17:08
поделиться

2 ответа

Взгляните на collections.defaultdict - это позволяет вам использовать словарь как обычно, но любая попытка получить доступ к ключу, которого нет в словаре, приводит к тому, что этот ключ создается со значением по умолчанию Вы указываете.

Вы можете сделать по умолчанию плавающее число, которое по умолчанию будет равно 0.0, потому что это то, что делает плавающее число, или вы можете создать «магическое» значение и использовать его по умолчанию:

kit = collections.defaultdict(float)

kit = collections.defaultdict(return_some_magic_value)

Если вы На самом деле мы пытаемся реализовать электронную таблицу, однако я бы посоветовал вам подумать о том, как вы будете обрабатывать циклы ячеек, ссылающихся на другие ячейки. Это не совсем тривиальная проблема, и ответ на этот вопрос расскажет, как вы храните свои клетки.

Самым основным решением было бы сохранить все неразрешенное, а затем выполнить итерацию по ячейкам, выполняя оценку «сначала в глубину»: если ячейка ссылается на другую ячейку, решите ее, а затем вернитесь. Вы помечаете решенные ячейки так же, как делали их, чтобы ваша итерация и рекурсия не сталкивались. Простым подходом может быть оценка их в отдельном словаре. Вы могли бы даже использовать defaultdict, где фабричная функция фактически выполнила рекурсивную оценку для вас!

0
ответ дан aghast 27 February 2019 в 17:08
поделиться

Один примитивный способ сделать это:

def default_cell(xl_obj, cell, default_val):
    try: 
        return str(round(xl_obj[cell].value,2))
    except: #best if you can narrow down the exception...
        return default_val

kit = {
    "1A": default_cell('a8', "0.00"),
    "2A": default_cell('a9', "0.00"),
    ....
}

легче просить прощения, чем разрешения в Python.

0
ответ дан Idlehands 27 February 2019 в 17:08
поделиться
Другие вопросы по тегам:

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