J'ai essayé différentes solutions pour résoudre mon problème avec des nouvelles lignes "amusantes" dans mon dictionnaire json et aucune d'entre elles ne fonctionne. Je pensais que je pourrais faire un post. Le dictionnaire est réalisé en grattant un site Web.Suppression de n \ n et d'autres caractères indésirables d'un dictionnaire json unicode avec python
j'ai un dictionnaire JSON:
my_dict = {
u"Danish title": u"Avanceret",
u"Course type": u"MScTechnol",
u"Type of": u"assessmen",
u"Date": u"\nof exami",
u"Evaluation": u"7 step sca",
u"Learning objectives": u"\nA studen",
u"Participants restrictions": u"Minimum 10",
u"Aid": u"No Aid",
u"Duration of Course": u"13 weeks",
u"name": u"Advanced u",
u"Department": u"31\n",
u"Mandatory Prerequisites": u"31545",
u"General course objectives": u"\nThe cour",
u"Responsible": u"\nMartin C",
u"Location": u"Campus Lyn",
u"Scope and form": u"Lectures, ",
u"Point(ECTS)": u"10",
u"Language": u"English",
u"number": u"31548",
u"Content": u"\nThe cour",
u"Schedule": u"F4 (Tues 1"
}
J'ai dépouillé le contenu de la valeur à [:10]
pour réduire l'encombrement, mais certaines valeurs ont une longueur de 300 caractères. Il n'est peut-être pas bien représenté ici, mais certaines valeurs ont beaucoup de caractères de nouvelle ligne et j'ai essayé beaucoup de différentes solutions pour les supprimer, comme str.strip
et str.replace
mais sans succès car mes 'valeurs' sont unicode. Et par les valeurs que je veux dire key, value in my_dict.items()
. Comment supprimer toutes les nouvelles lignes apparaissant dans mon dictionnaire? (Avec les valeurs mises en évidence lorsque certaines nouvelles lignes sont en fin de ligne, certaines sont en tête et d'autres sont au milieu du contenu: e.i \nI have a\ngood\n idea\n
).
EDIT
J'utilise Python v. 2.7.11 et le morceau de code suivant ne produit pas ce que je dois. Je veux que toutes les nouvelles lignes soient changées en un seul caractère d'espace.
for key, value in test.items():
value = str(value[:10]).replace("\n", " ")
print key, value
Veuillez donner un exemple où 'str.replace' ne fonctionne pas. Vous pouvez modifier la question et les ajouter. –
Voulez-vous supprimer les nouvelles lignes ou voulez-vous les remplacer par un seul espace? Vous devez mentionner la version Python que vous utilisez (de préférence avec une étiquette), car la manipulation Unicode est tout à fait différent en Python 2 vs Python 3. Vous pouvez trouver cet article utile: [Pragmatique Unicode] (http://nedbatchelder.com/text/unipain.html), qui a été écrit par SO vétéran Ned Batchelder. –