Our take
- Activity
- 75
- Community
- 36
- Issues
- 83
- Pull requests
- 84
+3 stars in the last 30 days
- Merges more pull requests than 96% of the projects we track
Project history
Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.
Stars
722Forks
121Change since Nov 13, 2026: 0 stars·0 forks
Overview
python-nameparser is a Python library for turning a human name string into components that software can work with. It addresses a common data-processing problem: names do not follow one universal order or format, and simple whitespace splitting can produce unreliable results.
The parser supports configurable behavior, rendering and comparison helpers, and opt-in locale packs. Use it when name-aware processing is more useful than treating a name as an undifferentiated string. See the repository and documentation for details.
Key Features
- Parses names into title, given, middle, family, suffix, nickname, and maiden fields.
- Provides helpers for family-name particles and aggregate given-name or surname values.
- Renders parsed names into caller-defined formats.
- Supports configurable parsing behavior and composable configuration.
- Offers opt-in locale packs for additional language-specific conventions.
- Includes support for East Asian names and recognition of some non-Latin titles and name markers.
- Provides a command-line interface with JSON output.
Use Cases
- Application developers can structure names entered in forms before storing or displaying them.
- Data engineers can normalize name fields during text-processing or data-import workflows.
- Directory and contact tool maintainers can format names consistently for lists, labels, or exports.
- Internationalized applications can use locale packs when parsing conventions differ by language or script.
Getting Started
Install from PyPI:
pip install nameparser
For usage and configuration details, see the README and documentation.
Considerations
- Requires Python 3.11 or newer.
- Name parsing is inherently ambiguous; results depend on the input and parser configuration, so validate behavior against the names your application handles.
- Locale packs are opt-in, and some language-specific splitting behavior should not be assumed without selecting the appropriate locale.
- The input reports the license as
NOASSERTION, while the README describes the project as LGPL licensed. Review the repository's LICENSE file to confirm licensing terms for your use.
Found this useful?
Share it with someone who would like python-nameparser.