{"id":5383,"library":"py-markdown-table","title":"Markdown Table Generator","description":"py-markdown-table is an active Python library, currently at version 1.3.0, designed to generate formatted markdown tables from a list of dictionaries. It boasts zero dependencies and releases updates periodically, addressing bug fixes and enhancing formatting options.","status":"active","version":"1.3.0","language":"en","source_language":"en","source_url":"https://github.com/hvalev/py-markdown-table","tags":["markdown","table","generator","formatter"],"install":[{"cmd":"pip install py-markdown-table","lang":"bash","label":"Install with pip"}],"dependencies":[{"reason":"Required Python version compatibility.","package":"python","version":">=3.8,<4.0"}],"imports":[{"note":"The import path was changed in preparation for v1.0.0. The old namespace `markdownTable` was deprecated and fully removed in v1.0.0.","wrong":"from markdownTable import markdownTable","symbol":"markdown_table","correct":"from py_markdown_table.markdown_table import markdown_table"}],"quickstart":{"code":"from py_markdown_table.markdown_table import markdown_table\n\ndata = [\n    {\"Product\": \"Smartphone\", \"Brand\": \"Apple\", \"Price\": 999.99},\n    {\"Product\": \"Laptop\", \"Brand\": \"Dell\", \"Price\": 1299.99}\n]\n\nmarkdown = markdown_table(data).get_markdown()\nprint(markdown)","lang":"python","description":"This example demonstrates how to create a basic markdown table from a list of dictionaries. The keys of the dictionaries become the column headers, and the values form the rows of the table."},"warnings":[{"fix":"Update your import statements from `from markdownTable import markdownTable` to `from py_markdown_table.markdown_table import markdown_table`.","message":"The import namespace changed from `markdownTable` to `py_markdown_table.markdown_table` in v1.0.0. Older versions (<1.0.0, e.g., v0.4.0) provided a warning about this impending change.","severity":"breaking","affected_versions":"<1.0.0"},{"fix":"Refer to the v1.0.0 changelog and updated documentation on GitHub for current method equivalents and refactor your code accordingly.","message":"Deprecated methods were removed in v1.0.0 as part of a code cleanup and simplification.","severity":"breaking","affected_versions":"<1.0.0"},{"fix":"Ensure all dictionary items in your input list share the exact same keys to represent consistent columns across all rows.","message":"The library expects input data as a list of dictionaries where all dictionaries (rows) must have uniform keys (column headers). Inconsistent keys may lead to unexpected table structures or errors.","severity":"gotcha","affected_versions":"All"},{"fix":"If experiencing issues with new validation rules, consider reviewing your data or setting `skip_data_validation=True` as a temporary workaround, understanding the potential risks.","message":"Data validation was added in v1.0.0 for robustness. If your data might not strictly adhere to expected formats, you can skip validation using the `skip_data_validation` parameter in the constructor.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Test your generated markdown in the target rendering environment (e.g., GitHub, specific IDEs, or documentation tools) to ensure it appears as intended, especially for complex layouts or heavy emoji use.","message":"Rendering of multiline content and emojis can vary between different Markdown viewers. GitHub's markdown preview, for instance, might show slight offsets in cells containing emojis compared to a monospaced terminal.","severity":"gotcha","affected_versions":"All"}],"env_vars":null,"last_verified":"2026-04-13T00:00:00.000Z","next_check":"2026-07-12T00:00:00.000Z"}