print and extract spss metadata
Project description
SPSS Metadata Printer ๐
Easy-to-use Python package for extracting, viewing, and exporting metadata from SPSS files with beautiful formatting.
โจ Features
- ๐ Pretty-print comprehensive SPSS metadata to console
- ๐พ Export metadata summaries to text files automatically saved to Downloads
- ๐ Extract metadata dictionary to JSON for programmatic access and archival
- ๐ Detailed variable information including labels, types, and value mappings
- ๐จ Beautiful table formatting with configurable width and display options
๐ Quick Start
Installation
pip install metaprinter
Or using uv:
uv add metaprinter
Basic Usage
import pyreadstat
from metaprinter import print_metadata, export_metadata, extract_metadict
# Load your SPSS file
df, meta = pyreadstat.read_sav('data.sav')
# Display beautiful metadata summary inside a notebook
print_summary = print_metadata(df, meta)
# Export to Downloads/metadata_summary.txt
export_summary = export_metadata(df, meta)
# Extract metadata to JSON (Downloads/meta_dictionary.json)
extract_metadict(meta)
Output Preview:
============================================================
SPSS FILE METADATA
============================================================
File encoding : 'UTF-8'
Number of cols : 25
Number of rows : 100
Table name : 'Table'
File label : 'Customer Satisfaction Survey'
Notes : 'Notes'
VARIABLE METADATA
============================================================
โโโโโโโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโ
โ column โ dtype โ column_n โ n_uniques โ n_categories โ column_label โ value_labels โ
โ --- โ --- โ --- โ --- โ --- โ --- โ --- โ
โ str โ str โ i64 โ i64 โ i64 โ str โ str โ
โโโโโโโโโโโโโโโโโชโโโโโโโโโโชโโโโโโโโโโโชโโโโโโโโโโโโชโโโโโโโโโโโโโโโชโโโโโโโโโโโโโโโโโโโโโโชโโโโโโโโโโโโโโโโโโโโโโก
โ respondent_id โ Int64 โ 1547 โ 1547 โ 0 โ Respondent ID โ โ
โ satisfaction โ Int64 โ 1523 โ 5 โ 5 โ Satisfaction Level โ { โ
โ โ โ โ โ โ โ "1": "Very Low", โ
โ โ โ โ โ โ โ "2": "Low", โ
โ โ โ โ โ โ โ "3": "Neutral", โ
โ โ โ โ โ โ โ "4": "High", โ
โ โ โ โ โ โ โ "5": "Very High" โ
โ โ โ โ โ โ โ } โ
โ age โ Int64 โ 1534 โ 6 โ 6 โ Age Group Category โ { โ
โ โ โ โ โ โ โ "1": "18-25", โ
โ โ โ โ โ โ โ "2": "26-35", โ
โ โ โ โ โ โ โ "3": "36-45", โ
โ โ โ โ โ โ โ "4": "46-55", โ
โ โ โ โ โ โ โ "5": "56-65", โ
โ โ โ โ โ โ โ "6": "65+" โ
โ โ โ โ โ โ โ } โ
โ ... โ ... โ ... โ ... โ ... โ ... โ ... โ
โโโโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโ
๐ API Reference
print_metadata(df, meta, show_all_columns=True, max_width=222, include_all=False)
Print a comprehensive metadata summary for SPSS data loaded with pyreadstat.
Parameters:
df: DataFrame containing the SPSS data (Pandas or Polars)meta: Metadata object frompyreadstat.read_sav()show_all_columns: Whether to show all columns without truncation (default: True, optional)max_width: Maximum table width in characters (default: 222, optional)include_all: Whether to include all available metadata fields (default: False, optional)
export_metadata(df, meta, filename=None, show_all_columns=True, max_width=222, include_all=False)
Export SPSS metadata summary to a text file in the Downloads folder.
Parameters:
df: DataFrame containing the SPSS data (Pandas or Polars)meta: Metadata object frompyreadstat.read_sav()filename: Custom filename without extension (default: "metadata_summary")show_all_columns: Whether to show all columns without truncation (default: True, optional)max_width: Maximum table width in characters (default: 222, optional)include_all: Whether to include all available metadata fields (default: False, optional)
extract_metadict(meta, include_all=False, output_path=None)
Extract metadata dictionary from pyreadstat meta object and save as JSON.
Parameters:
meta: Metadata object frompyreadstat.read_sav()include_all: Whether to include all metadata fields or just essential ones (default: False, optional)output_path: Custom file path for JSON output (must end with .json). If None, saves to Downloads/meta_dictionary.json (default: None, optional)
Example JSON Output (basic):
{
"General Information": {
"Notes": "Survey conducted in 2024",
"Creation Time": "2024-01-15 10:30:00",
"File Encoding": "UTF-8",
"Number of Columns": 25,
"Number of Rows": 100,
"Table Name": "Table",
"File Label": "Customer Satisfaction Survey"
},
"Variable Information": {
"Column Names to Labels": {
"respondent_id": "Respondent ID",
"satisfaction": "Satisfaction Level",
"age": "Age Group Category"
},
"Variable Value Labels": {
"satisfaction": {
"1": "Very Low",
"2": "Low",
"3": "Neutral",
"4": "High",
"5": "Very High"
}
}
}
}
๐ Requirements
- Python >=3.11
- pyreadstat >=1.3.0
- polars >=1.3.0
- pandas >=2.3.0
๐ License
MIT License - see LICENSE file for details
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file metaprinter-0.2.6.tar.gz.
File metadata
- Download URL: metaprinter-0.2.6.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
973053e2606344d6a8f9bdd540ba70766b465fdeaa488e58b9c8cafd54876c26
|
|
| MD5 |
57e185f52b654f789db27a66d2f68f08
|
|
| BLAKE2b-256 |
0f5940a10d5f3663ffea0b360bf88eb84bcf28a7ac69502daa80853f298a186c
|
File details
Details for the file metaprinter-0.2.6-py3-none-any.whl.
File metadata
- Download URL: metaprinter-0.2.6-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98567c80c88060b9af44a2ea7fa4c2ce05e6b5e529b7714390d48792504ee8a4
|
|
| MD5 |
e23f65f25f7f93053041c5149c216041
|
|
| BLAKE2b-256 |
bb561bfd6b4051ac2181f9aaed2c8749083b6abb9a869d21ae2eed85475996e1
|