Что такое разумный предел длины на поля “Name” человека?

Просто добавьте метод to_json в ваш класс следующим образом:

def to_json(self):
  return self.message # or how you want it to be serialized

И добавьте этот код (из этот ответ ) , чтобы где-то в верхней части всего:

from json import JSONEncoder

def _default(self, obj):
    return getattr(obj.__class__, "to_json", _default.default)(obj)

_default.default = JSONEncoder().default
JSONEncoder.default = _default

Это будет модуль monkey-patch json, когда он будет импортирован, поэтому JSONEncoder.default () автоматически проверяет специальный метод «to_json ()» и использует его для кодирования объект, если найден.

Так же, как сказал Онур, но на этот раз вам не нужно обновлять каждый json.dumps() в вашем проекте.

130
задан Community 23 May 2017 в 11:47
поделиться

9 ответов

британский правительственный Каталог Стандартов Данных предлагает, чтобы 35 символов для каждого Имени и Фамилии, или 70 символов для единственного поля содержали Полное имя.

132
ответ дан 24 November 2019 в 00:25
поделиться

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

Остерегаются тонкой настройки размеров столбца, зависящих от локали. Для запуска это настраивает Вас для кошмара обслуживания, не принимая во внимание то, что люди мигрируют и берут свои имена с ними.

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

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

25
ответ дан 24 November 2019 в 00:25
поделиться

Если это - полное имя в одном поле, я обычно иду с 128 - 64/64 для в общем и целом в отдельных полях - Вы просто никогда не знаете.

6
ответ дан 24 November 2019 в 00:25
поделиться

Я обычно иду с varchar (255) (255 являющийся максимальной длиной типа varchar в MySQL).

8
ответ дан 24 November 2019 в 00:25
поделиться

@Ian Nelson: я задаюсь вопросом, видят ли другие проблему там.

Скажем, Вы разделили поля. Это - 70 общих количеств символов, 35 для имени и 35 для фамилии. Однако, если у Вас есть одно поле, Вы пропускаете пространство, которое разделяет имя и фамилию, обсчитывая Вас 1 символом. Несомненно, это - "только" один символ, но это могло иметь значение между кем-то вводящим их полное имя и кем-то нет. Поэтому я изменил бы то предложение на "35 символов для каждого Имени и Фамилии, или 71 символ для единственного поля для содержания Полного имени".

5
ответ дан 24 November 2019 в 00:25
поделиться

Мы используем 50.

2
ответ дан 24 November 2019 в 00:25
поделиться

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

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

1
ответ дан 24 November 2019 в 00:25
поделиться

То, что Вы действительно спрашиваете, является связанным, но существенно другим вопросом: как часто я хочу усечь имена для приспосабливания их в базе данных? Ответ зависит оба от частоты различных длин имен, а также максимальных выбранных длин. Это беспокойство сбалансировано опасениями по поводу ресурсов, используемых базой данных. Рассмотрение, как мало служебного различия там между различными макс. длинами для varchar поля, я обычно допускал бы ошибку на стороне того, чтобы никогда быть вынужденным усечь имя и сделать поле столь большим, как я смел.

2
ответ дан 24 November 2019 в 00:25
поделиться

Среднее имя является приблизительно 6 буквами. Это уезжает 43 в фамилию.:) Кажется, что Вы могли, вероятно, сократить его, если Вам нравится.

основной вопрос состоит в том, сколько строк Вы думаете, что будете иметь? Я не думаю, что varchar (50) собирается уничтожить Вас, пока Вы не получаете несколько миллионов строк.

0
ответ дан 24 November 2019 в 00:25
поделиться
Другие вопросы по тегам:

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