Stocker une liste de chaînes à un HDF5 Dataset à partir de Python
Je suis en train de stocker une variable liste de longueur de chaîne à une HDF5 Dataset. Le code est
import h5py
h5File=h5py.File('xxx.h5','w')
strList=['asas','asas','asas']
h5File.create_dataset('xxx',(len(strList),1),'S10',strList)
h5File.flush()
h5File.Close()
Je reçois un message d'erreur indiquant que "TypeError: Pas de chemin de conversion pour dtype: dtype ("< U3')"
où l' < moyens réels de moins que le symbole
Comment puis-je résoudre ce problème.
Pour commencer, vous avez une faute de frappe sur
désolé pour la faute de frappe, je suis en train de sérialiser un pandas bloc de données à un HDF5 fichier donc je dois créer un en-tête qui contient les noms de toutes les colonnes, donc j'ai extrait les noms de colonne dans une liste et d'essayer de l'écrire sur un HDF5 dataset.
sauf pour la typo code ci-dessus émule exactement la même situation
Vous devriez modifier votre question et de corriger la faute de frappe.
create_dataset
. Pouvez-vous donner le code exact que vous utilisez, en particulier là où strList
est à venir?désolé pour la faute de frappe, je suis en train de sérialiser un pandas bloc de données à un HDF5 fichier donc je dois créer un en-tête qui contient les noms de toutes les colonnes, donc j'ai extrait les noms de colonne dans une liste et d'essayer de l'écrire sur un HDF5 dataset.
sauf pour la typo code ci-dessus émule exactement la même situation
Vous devriez modifier votre question et de corriger la faute de frappe.
OriginalL'auteur gman | 2014-04-22
Vous devez vous connecter pour publier un commentaire.
Vous êtes en train de lire dans des chaînes Unicode, mais en précisant votre type de données ASCII. Selon le h5py wiki, h5py ne prend pas actuellement en charge de cette conversion.
Vous aurez besoin pour coder les chaînes de caractères dans un format h5py poignées:
Remarque: tout n'est pas encodé en UTF-8 peuvent être codés en ASCII!
Quelle est la bonne manière à extraire ces chaînes à partir de la hdf5 fichier (en python3)?
L'ASCII est également valable en UTF-8, mais vous pouvez utiliser
ascii.decode('utf-8')
si vous avez besoin d'str
type. Note: ma réponse va tomber des caractères non-ASCII. Si vous avez conservé avecencode('unicode_escape')
, alors vous avez besoindecode('unicode_escape')
pour convertir des choses.OriginalL'auteur SlightlyCuban
OriginalL'auteur Amit Kushwaha
Je suis dans une situation similaire désireux de stocker les noms de colonne de dataframe comme un dataset dans hdf5 fichier. En supposant que df.colonnes est ce que je veux stocker, j'ai trouvé les ouvrages suivants:
Cela suppose que les noms de colonne sont "simples" des chaînes de caractères qui peuvent être codés en ASCII.
OriginalL'auteur Rajendra Koppula