Преобразование значения в словаре из str в float - PullRequest
2 голосов
/ 02 июля 2019

Я пытался посмотреть на другие вопросы и не нашел ничего подходящего для меня.У меня есть список, если словари (поездки) и хочу получить доступ к значениям в каждом словаре в списке поездок, и преобразовать, если из строки в число с плавающей запятой.

Если я беру поездки [0] вывод:

# {'pickup_latitude': '40.64499',
#  'pickup_longitude': '-73.78115',
#  'trip_distance': '18.38'}

Я пытаюсь создать функцию, которая выполняет итерацию по списку словарей, получая доступ к значениям и передавая их в числа с плавающей точкой.

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

def float_values(trips):
    for trip in trips:
        for key, value in trip.items():
            value = float(value)
        return

float_values ​​[0] должно вывести:

# {'pickup_latitude': 40.64499,
#  'pickup_longitude': -73.78115,
#  'trip_distance': 18.38}

Непрерывное получение

объекта 'function' isнет подписки '

ИЛИ

Объект' NoneType 'не является подпиской

Ответы [ 2 ]

2 голосов
/ 02 июля 2019

Если вы хотите переопределить значения из словаря, вы должны сделать что-то вроде этого

def float_values(trips):

    for trip in trips:
        for key, value in trip.items():
            trip[key] = float(value)

    return trips

Делая value = float(value), вы временно записываете значение с плавающей точкой и нигде не сохраняете

1 голос
/ 02 июля 2019

Просто нужно изменить значение в словаре:

for list_dict in list_of_dicts:
    for key, value in list_dict.items():
        list_dict[key] = float(value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...