Как убрать из вывода словаря одинарные ковычки?

Мне нужно убрать из словаря одинарные ковычки, которые появляются при выводе. Как это можно сделать? Я пробовал через replace, но вывод тогда вообще странный получается..

def weather_tomorrow_St():
        headers = {
            "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0"
        }
        url = "https://www.gismeteo.ru/weather-stepnoye-212930/tomorrow/"
    
        q = requests.get(url=url, headers=headers)
        result = q.text
    
        soup = BeautifulSoup(result, 'lxml')
        rane_dir = [x.text for x in soup.select('div.widget-row-precipitation-bars div.row-item div')]
        for x in range(0,8):
            if rane_dir[x] == '0':
                rane_dir[x] = 'Осадков нет'
            else:
                rane_dir[x] = 'Возможен дождь'
        time_dir = [x.text for x in soup.select('div.widget-row-time div.row-item span')]
        data_time = list(map(f, time_dir))
        temp_dir = [x.text for x in soup.select('div.widget-oneday span.unit_temperature_c')]
        
        gen_inf = list(zip(temp_dir, rane_dir))
    
        data = {
            'Список погоды на завтрашний день, Степное': '\n',
            (data_time[0]): str(gen_inf[0])[1:-1],
            (data_time[1]): str(gen_inf[1])[1:-1],
            (data_time[2]): str(gen_inf[2])[1:-1],
            (data_time[3]): str(gen_inf[3])[1:-1],
            (data_time[4]): str(gen_inf[4])[1:-1],
            (data_time[5]): str(gen_inf[5])[1:-1],
            (data_time[6]): str(gen_inf[6])[1:-1],
            (data_time[7]): str(gen_inf[7])[1:-1]
        }
    
        for elem in data:
            for str in elem:
                str.replace("'", "")
                print(str)
    
        with open('weather_tomorrow.json', 'w', encoding="utf-8") as json_file:
            json.dump(data, json_file, indent=4, ensure_ascii=False)

Вот словарь:

data = {
        'Список погоды на завтрашний день, Саратов': '\n',
        (data_time[0]): str(gen_inf[0])[1:-1],
        (data_time[1]): str(gen_inf[1])[1:-1],
        (data_time[2]): str(gen_inf[2])[1:-1],
        (data_time[3]): str(gen_inf[3])[1:-1],
        (data_time[4]): str(gen_inf[4])[1:-1],
        (data_time[5]): str(gen_inf[5])[1:-1],
        (data_time[6]): str(gen_inf[6])[1:-1],
        (data_time[7]): str(gen_inf[7])[1:-1]
    }

Функция f(Она просто ставит двоеточие во времени):

def f(line):
    if len(line) > 3:
        return f'{line[:2]}:{line[2:]}'
    return f'{line[:1]}:{line[1:]}'

Код вывода:

with open('weather_tomorrow.json',  encoding='utf-8') as file:
        data_weather = json.load(file)

        for k, v in data_weather.items():
            weather_data = f"{k}: {v}"

            await message.answer(weather_data)

Ответы (1 шт):

Автор решения: CrazyElf
data = {
        'Список погоды на завтрашний день, Саратов': '\n',
        (data_time[0]): str(gen_inf[0])[1:-1],
        (data_time[1]): str(gen_inf[1])[1:-1],
        (data_time[2]): str(gen_inf[2])[1:-1],
        (data_time[3]): str(gen_inf[3])[1:-1],
        (data_time[4]): str(gen_inf[4])[1:-1],
        (data_time[5]): str(gen_inf[5])[1:-1],
        (data_time[6]): str(gen_inf[6])[1:-1],
        (data_time[7]): str(gen_inf[7])[1:-1]
    }

Кавычки у вас появляются из-за str, поменяйте этот кусок кода на такой:

data = {
    'Список погоды на завтрашний день, Степное': '\n'
}
for i in range(8):
    data[data_time[i]] = ', '.join(gen_inf[i])

Вообще тут почти всё нужно менять, но пока этого должно хватить.

→ Ссылка