Как экспортировать список чисел в переменной или список в файл CSV - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть код, который использует селен, тестирует производительность URL, у меня есть для l oop, чтобы вычислить среднее значение производительности, но когда я пытаюсь экспортировать производительность и ключ от нее (это URL), он дает мне неверную информацию (он дает мне 0) вместо значения, сохраненного в переменной.

Я пытался использовать список для сохранения среднего значения, но не смог знать, как отображать его по значению ключа в файле CSV.

import time
import unittest
import json
from selenium import webdriver

class Tester(unittest.TestCase):
    "doc string"
    def setUp(self):
        "doc string"
        self.driver = webdriver.Chrome("/Users/tamerjar/Desktop/chromedriver")
        self.driver.implicitly_wait(30)
        self.verificationErrors = []


    def test_er(self):
        "doc string"
        driver = self.driver
        total = {}
        sum_list = []

        print("total" + str(total))
        durations = []
        with open('output.txt', 'w') as json_file:
            for result in range(10):
                driver.get("https://en.wikipedia.org/wiki/Software_metric")
                result = driver.execute_script('return window.performance.getEntries()')
                print(result)
                print((len(result)))

                for current in result:
                    duration_time = current['duration']
                    durations.append(duration_time)
                    print("durations" + str(durations))
                    #print(dir(current))
                    #print(current.keys())
                    url = current['name']
                    current_list = total.get(url, [])
                    current_list.append(current['duration'])
                    total[url] = current_list
                    print("current list" + str(current_list))
                    print("total" + str(total))
                    print(current['name'])
                    print(current['duration'])
                    print(current.keys())
                    json_file.write(f"{current['name']}, {current['duration']}\n")
                    print("Total final : " + str(total))


                for duration in total:
                    # This is how i calculate the avergae, in respect to the json data
                    list = total[duration]
                    #print(list)
                    average = sum(total[duration])/len(total)

                    #And here i tried to display the key, with the average time but got the 
                    #wrong average times.

                    with open('mycsv.csv', 'w') as csv_file:
                        for key in total.keys():
                            csv_file.write(f'{key}, {average}\n')
                    print("Sum2" + str(average))

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)


if __name__ == "__main__":
    unittest.main()

...