En Python, j'ai besoin d'analyser un fichier délimité par tabulation qui stocke des données dans un format question: réponse; question: réponse où vous pouvez avoir une ou plusieurs questions: une date
Malheureusement, s'il y a plusieurs réponses à une question, le point-virgule est également utilisé, mais seulement pour délimiter la partie réponse. La question ne se répète pas. Par exemple:
question1: réponse1; question2: réponse1; réponse2; réponse3; question3: answer1; Réponse2
Je voudrais partager ceci à:
Question1: answer1
question2: answer1
question2: Réponse2
question2: Réponse3
question3: answer1
question4: Réponse2
Python: fractionnement d'un résultat de requête avec un délimiteur réutilisé
ce que j'ai en ce moment, ne se divise sur le point-virgule, donc, il ne fonctionne pas
with open('QA.txt', 'w', newline='') as tsv:
tsv.write("date\tQ:A\r\n")
for row in cursor:
date = str(row[0])
qa = str(row[1])
if qa.count(';') == 0:
tsv.write(
date + '\t' + qa + '\r\n')
else:
b = qa.split(";")
for c in range(0, qa.count(';')+1):
tsv.write(date + '\t' + b[c] +'\r\n')
curseur contient les résultats d'une requête qui tire une estampille temporelle et une chaîne qui contient un ou plusieurs question: paires de réponses
Exemple:
question: réponse; Question Réponse ; répondre; question: réponse
question: réponse; répondre ; question: réponse
question: réponse; Question Réponse ; répondre ; répondre ; répondre ; Question Réponse ; répondre
question: répondre
question: réponse
Essentiellement, le problème est que chaque question: paire de réponse est délimitée par un point-virgule. Mais, s'il y a plus d'une réponse, les réponses elles-mêmes sont également délimitées par un point-virgule.
On ne sait pas combien de paires il y aura ou, pour toute question, combien de réponses il y aura.
Voici une ligne de données réelle
2017-04-10 10: 29: 32.183 WDL gastro-intestinale: Oui, sauf pour; Description de l'abdomen: Tender; Distended; Round; Sons intestinaux: hypoactifs; Nausées: Non
Sur qui doit venir
10/04/2017 10: 29: 32,183 Gastro-intestinal BNM: Oui, à l'exception
10/04/2017 10: 29: 32,183 Abdomen Description: Appel d'offres
2017- 4 au 10 octobre: 29: 32,183 Abdomen description: distendu
10/04/2017 10: 29: 32,183 Abdomen description: Round
10/04/2017 10: 29: 32,183 Bruits intestinaux: hypoactif
2017-04- 10 10: 29: 32.183 Nausée: Non
De temps en temps, votre script crée des lignes à la question: la question – user3219388
intéressante, pouvez-vous me dire l'entrée qui fait et je peux le réparer? –
On dirait que le problème est quand ils posent deux fois la même question. Exemple, voici la source:
score_dt \t gastro 05/11/2015 02: 17: 33,000 \t Gastro-intestinal BNM: Oui, à l'exception; Gastrointestinal BNM: Oui, sauf pour
Ce qui sort de qui est
2015-11- 05 02:17:33 \t Appareil digestif WDL: Oui, sauf pour
2015-11-05 02:17:33 \t Appareil digestif WDL: Appareil digestif WDL
– user3219388