-2
votes

Créer un dictionnaire dans un dictionnaire basé sur les données d'un fichier CSV

J'aimerais créer un dictionnaire dans un dictionnaire des données de mon CSV. La chose est que je n'ai pas encore la connaissance de le faire, j'ai essayé de rechercher les réponses ici et sur d'autres sites, mais cela revient toujours vide ou trop compliqué pour moi.

exemple de code que j'ai utilisé pour lire le CSV Fichier. P>

sample_dictionary = {
                 "/api/test_url.php?client_code=MAM01":{
                               "address": "127.0.0.1",
                               "time": "00:0:04",
                               "date": "12-Jun-2019",
                               "status": "GET",
                               "count": 1
                       },
                  "/api/test_url.php?client_code=test":{
                               "address": "127.0.0.1",
                               "time": "00:00",
                               "date": "12-Jun-2019",
                               "status": "GET",
                               "count": 2
                       }
                 }


0 commentaires

4 Réponses :


0
votes

Essayez comme ceci:

sample_dictionary = {}

for filename in files:
   #Code to read file
     ......
    for row in filename:
        sample_dictionary[filename]={
                     "address": row[0],
                               "time": row[2],
                               "date": row[3],
                               "status": row[4],
                               "count": row[5]}


0 commentaires

0
votes
  1. Trier votre CSV par les dates li>
  2. Parse Rowows Li>

    (vous pouvez faire 1,2 n'importe quel ordre) P>

    1. python li> OL>
      ret = {}
      for i,row in enumerate(rows):
          #check for duplicate times
          count = 0
          index = i
          while(row[1] == rows[i+1][1] and row[2] == rows[i+1][2]): 
            count += 1
            index +=1
          ret[str(row[5])] = {
              'address': row[0],
              'time': row[2],
              'date': row[3],
              'status': row[4],
              'count': count
          }
      
      
      

0 commentaires

0
votes

python ne permet pas de créer un dictionnaire code> avec un clé en double code> comme vous voulez API URL code> comme clé de dictionnaire, vous devriez Utilisez une variable code> compteur code> en tant que clé de dictionnaire code> code>. Comme j'utilise index de liste code> comme clé de dictionnaire.

from dateutil import parser
from datetime import datetime

rows = [
['127.0.0.1', '12-Jun-2019', '00:0:00', '0', 'GET', '/api/test_url.php?client_code=MAM01', '/api/test_url.php', '/api/', 'api', 'HTTP/1.1', '200', '80 -"'],
['127.0.0.1', '12-Jun-2019', '00:0:04', '0', 'GET', '/api/test_url.php?client_code=test', '/api/test_url.php', '/api/', 'api', 'HTTP/1.1', '200', '80 -"'],
['127.0.0.1', '12-Jun-2019', '00:0:00', '0', 'GET', '/api/test_url.php?client_code=test', '/api/test_url.php', '/api/', 'api', 'HTTP/1.1', '200', '80 -"']
]

sample_dictionary = {}
for index, row in enumerate(rows):
    count=0
    date = parser.parse(row[1])
    if date.date() == datetime.now().date():
        count = 1

    sample_dictionary[index] = dict(api=row[5],address=row[0], time=row[2], date=row[1], status=row[4],
                                             count=count)

print(sample_dictionary)


0 commentaires

0
votes

Il n'y a pas de comptage dans votre fichier CSV

Vous pouvez utiliser le code ci-dessous et vous pouvez ajouter le comptage également xxx


0 commentaires