J'ai une chaîne comme suit: 'A: B # C: D # E: F #' Code> Comment convertir cela en Json comme = {'A': 'B', 'C ':' d ',' e ':' f '} code> en utilisant python. Toute aide est appréciée. Tia. P>
5 Réponses :
Supprimer le # code>, puis divisé sur l'espace pour obtenir des pièces, puis diviser sur : code> pour associer le mappage
str = 'a:b# c:d# e:f#'
items = str.split("#")
result = {item.split(":")[0]:item.split(":")[1] for item in items[:-1]}
print(result)
{'a': 'b', ' c': 'd', ' e': 'f'}
Vous pouvez utiliser sortie: p > re .FindAll code> pour obtenir toutes les paires de valeurs correspondantes, puis jeter cette liste à un dict code>: {"a": "b", "c": "d", "e": "f"}
{'a': 'b', 'c': 'd', 'e': 'f'}
Ce n'est pas la solution la plus rapide / la plus courte. Cependant, je pense que ce serait peut-être celui qui est le plus facile à comprendre par un débutant.
Vous pouvez ensuite raccourcir / optimiser le code si nécessaire. P>
Votre question se compose de deux parties. P>
1.) Comment convertir une chaîne, qui est dans un format spécifique dans une structure de données Python p>
2.) Comment convertir une structure de données Python en JSON P>
import json
def my_parse(data_str):
result = {}
entries = data_str.split('#') # split input by '#'
for entry in entries:
entry = entry.strip() # remove leading and trailing white space
if entry: #
key, val = entry.split(":")
# cleanup key and val. (strip off spaces) perhaps you don't need this
key = key.strip()
val = val.strip()
result[key] = val # add to our dict
return result
example_data = 'a:b# c:d# e:f#'
rslt_dict = my_parse(example_data)
print("result dict is", rslt_dict)
# convert to json string.
json_str = json.dumps(rslt_dict)
# or directly write json to file
with(open("myjsonfile.json", "w")) as fout:
json.dump(rslt_dict, fout)
Ce n'est pas Json, c'est juste un dictionnaire
Vous pouvez utiliser des expressions régulières (Module Re) pour collecter des données dans une DICT et générer JSON avec le module respectif.
Chaque valeur est terminée avec un #, non? Ensuite, vous pouvez vous séparer le long des #, puis diviser chaque sous-chaîne le long de la suivante:, tout mettre dans une carte de hachage et utilisez un sérialiseur JSON à court de surface pour le transformer en JSON bien formé.
Vous pouvez penser à accepter une réponse pour récompenser ceux qui vous ont aidé, ou du moins comment expliquer ce qui manque;)