J'essaie de transformer un fichier texte qui ressemble à ce qui suit: avec beaucoup plus de rangées des journaux.
J'ai besoin de le convertir afin que tout soit dans un seul objet JSON, comme ce qui suit: P> {"date_time": "2019-10-14 13:00:19", "url": "www.google.com","type":"click", "user":"root", "ip":"0.0.0.0"}
3 Réponses :
Pandas Code>:
- Compte tenu de vos données, comme décrit, dans un fichier
.txt code>. li>
-
.TO_JON Code> a divers paramètres pour personnaliser le look final du fichier JSON. LI>
- avoir les données dans un fichier de données a l'avantage de permettre une analyse supplémentaire li>
- Les données ont un certain nombre de problèmes qui peuvent facilement être réparés
- Aucun nom de colonne LI>
- Format de données incorrect LI>
- Espace WhitSpace autour de l'URL LI>
ul> li>
ul>
xxx pré> fichier JSON h3> xxx pré> h2>
Vous pouvez utiliser Exemple de travail: P> DateTime code> et json code> module. Ouvrez le fichier et itérater des lignes sur les lignes, vous devrez peut-être adapter certaines parties du code. STRATTIME code> comportement p> with open("your/file/path.txt") as fh:
for line in fh:
# Copy the code from the above example.
...
Merci! Vous avez ceci pour travailler tout en utilisant de mettre le texte comme une chaîne. N'ont pas été en mesure de déterminer comment analyser le fichier à travers elle
@DevnotDev J'ai mis à jour ma réponse pour couvrir également la lecture d'un fichier
Merci beaucoup
import json
from ast import literal_eval
def transform_to_json(row):
d = literal_eval(row[2].strip())
d["date_time"] = row[0]
d["url"] = row[1]
return d
with open('example.txt', 'r') as file:
json_objs = [transform_to_json(row.split('|')) for row in file.readlines()]
single_json_result = json.dumps(json_objs)
Bienvenue à Stackoverflow! Pourquoi n'ajoutes-vous pas d'en-têtes à votre fichier avec des noms de vos champs, chargez-le sur Pandas Dataframe et le convertissez-le en Json comme celui décrit ici - Stackoverflow.com/Questtions/50384883/...
Que dois-je faire quand quelqu'un répond à ma question? Les gens ont tendance à mettre beaucoup de temps à répondre à des questions soigneusement. Si une solution répond à votre question, veuillez Vérifiez-le B> ou laissez un commentaire si cela ne résout pas le problème. Le chèque est sous la flèche haut / bas en haut à gauche de la réponse.