首页 > 解决方案 > 如何使用循环访问 python 字典中的某些值?

问题描述

我有一个 python 字典,我只需要从中访问某些值。我需要访问日期、高温、低温、风速和降雨值。

我试过使用这个for循环:

for Forecast in weather_data['value']['Forecasts'][0]:
    print(Forecast)

我被卡住了,我不确定如何获得这些值。任何帮助将不胜感激!

这是字典:

{'value': {'City': '77107', 'CityName': 'Cape Town', 'Forecasts': [{'DaySequence': 1, 'Segment': None, 'DaySegment': None, 'DayOfWeek': 6, 'WeekDay': 'Friday', 'ShortWeekDay': 'Fri', 'Date': '/Date(1548367200000)/', 'FormattedDate': 'Fri, Jan 25', 'DayLight': 'D', 'SkyDescriptor': '1', 'Sky': 'Sunny', 'PrecipitationDescriptor': '', 'Precipitation': '', 'TemperatureDescriptor': '8', 'TemperatureDescription': 'Mild', 'HighTemp': '22', 'LowTemp': '17', 'UV': 'High', 'AirDescription': '20', 'Air': 'Beautiful', 'Description': 'Sunny. Mild.', 'Temperature': None, 'WindSpeed': '54', 'Beaufort': None, 'BeaufortDescriptor': None, 'WindDirection': None, 'WindDirectionAbreviated': None, 'WindDirectionDescription': None, 'DewPoint': None, 'Humidity': None, 'Comfort': None, 'Visibility': None, 'Rainfall': None, 'Snowfall': None, 'PrecipitationProbability': None, 'Icon': '1', 'IconName': 'sunny', 'Cached': False}, {'DaySequence': 2, 'Segment': None, 'DaySegment': None, 'DayOfWeek': 7, 'WeekDay': 'Saturday', 'ShortWeekDay': 'Sat', 'Date': '/Date(1548453600000)/', 'FormattedDate': 'Sat, Jan 26', 'DayLight': 'D', 'SkyDescriptor': '1', 'Sky': 'Sunny', 'PrecipitationDescriptor': '', 'Precipitation': '', 'TemperatureDescriptor': '10', 'TemperatureDescription': 'Warm', 'HighTemp': '28', 'LowTemp': '18', 'UV': 'High', 'AirDescription': '22', 'Air': 'Nice', 'Description': 'Sunny. Warm.', 'Temperature': None, 'WindSpeed': '21', 'Beaufort': None, 'BeaufortDescriptor': None, 'WindDirection': None, 'WindDirectionAbreviated': None, 'WindDirectionDescription': None, 'DewPoint': None, 'Humidity': None, 'Comfort': None, 'Visibility': None, 'Rainfall': None, 'Snowfall': None, 'PrecipitationProbability': None, 'Icon': '1', 'IconName': 'sunny', 'Cached': False}, {'DaySequence': 3, 'Segment': None, 'DaySegment': None, 'DayOfWeek': 1, 'WeekDay': 'Sunday', 'ShortWeekDay': 'Sun', 'Date': '/Date(1548540000000)/', 'FormattedDate': 'Sun, Jan 27', 'DayLight': 'D', 'SkyDescriptor': '1', 'Sky': 'Sunny', 'PrecipitationDescriptor': '', 'Precipitation': '', 'TemperatureDescriptor': '8', 'TemperatureDescription': 'Mild', 'HighTemp': '24', 'LowTemp': '20', 'UV': 'High', 'AirDescription': '29', 'Air': 'Comfortable', 'Description': 'Sunny. Mild.', 'Temperature': None, 'WindSpeed': '51', 'Beaufort': None, 'BeaufortDescriptor': None, 'WindDirection': None, 'WindDirectionAbreviated': None, 'WindDirectionDescription': None, 'DewPoint': None, 'Humidity': None, 'Comfort': None, 'Visibility': None, 'Rainfall': None, 'Snowfall': None, 'PrecipitationProbability': None, 'Icon': '1', 'IconName': 'sunny', 'Cached': False}, {'DaySequence': 4, 'Segment': None, 'DaySegment': None, 'DayOfWeek': 2, 'WeekDay': 'Monday', 'ShortWeekDay': 'Mon', 'Date': '/Date(1548626400000)/', 'FormattedDate': 'Mon, Jan 28', 'DayLight': 'D', 'SkyDescriptor': '1', 'Sky': 'Sunny', 'PrecipitationDescriptor': '', 'Precipitation': '', 'TemperatureDescriptor': '8', 'TemperatureDescription': 'Mild', 'HighTemp': '26', 'LowTemp': '19', 'UV': 'High', 'AirDescription': '20', 'Air': 'Beautiful', 'Description': 'Sunny. Mild.', 'Temperature': None, 'WindSpeed': '32', 'Beaufort': None, 'BeaufortDescriptor': None, 'WindDirection': None, 'WindDirectionAbreviated': None, 'WindDirectionDescription': None, 'DewPoint': None, 'Humidity': None, 'Comfort': None, 'Visibility': None, 'Rainfall': None, 'Snowfall': None, 'PrecipitationProbability': None, 'Icon': '1', 'IconName': 'sunny', 'Cached': False}, {'DaySequence': 5, 'Segment': None, 'DaySegment': None, 'DayOfWeek': 3, 'WeekDay': 'Tuesday', 'ShortWeekDay': 'Tue', 'Date': '/Date(1548712800000)/', 'FormattedDate': 'Tue, Jan 29', 'DayLight': 'D', 'SkyDescriptor': '3', 'Sky': 'Mostly sunny', 'PrecipitationDescriptor': '4', 'Precipitation': 'a few showers', 'TemperatureDescriptor': '8', 'TemperatureDescription': 'Mild', 'HighTemp': '24', 'LowTemp': '19', 'UV': 'High', 'AirDescription': '20', 'Air': 'Beautiful', 'Description': 'a few showers. Mostly sunny. Mild.', 'Temperature': None, 'WindSpeed': '35', 'Beaufort': None, 'BeaufortDescriptor': None, 'WindDirection': None, 'WindDirectionAbreviated': None, 'WindDirectionDescription': None, 'DewPoint': None, 'Humidity': None, 'Comfort': None, 'Visibility': None, 'Rainfall': None, 'Snowfall': None, 'PrecipitationProbability': None, 'Icon': '33', 'IconName': 'showers', 'Cached': False}, {'DaySequence': 6, 'Segment': None, 'DaySegment': None, 'DayOfWeek': 4, 'WeekDay': 'Wednesday', 'ShortWeekDay': 'Wed', 'Date': '/Date(1548799200000)/', 'FormattedDate': 'Wed, Jan 30', 'DayLight': 'D', 'SkyDescriptor': '8', 'Sky': 'More sun than clouds', 'PrecipitationDescriptor': '51', 'Precipitation': 'Showers early', 'TemperatureDescriptor': '6', 'TemperatureDescription': 'Cool', 'HighTemp': '22', 'LowTemp': '19', 'UV': 'High', 'AirDescription': '*', 'Air': '', 'Description': 'Showers early. More sun than clouds. Cool.', 'Temperature': None, 'WindSpeed': '27', 'Beaufort': None, 'BeaufortDescriptor': None, 'WindDirection': None, 'WindDirectionAbreviated': None, 'WindDirectionDescription': None, 'DewPoint': None, 'Humidity': None, 'Comfort': None, 'Visibility': None, 'Rainfall': None, 'Snowfall': None, 'PrecipitationProbability': None, 'Icon': '33', 'IconName': 'showers', 'Cached': False}, {'DaySequence': 7, 'Segment': None, 'DaySegment': None, 'DayOfWeek': 5, 'WeekDay': 'Thursday', 'ShortWeekDay': 'Thu', 'Date': '/Date(1548885600000)/', 'FormattedDate': 'Thu, Jan 31', 'DayLight': 'D', 'SkyDescriptor': '32', 'Sky': 'Morning clouds', 'PrecipitationDescriptor': '', 'Precipitation': '', 'TemperatureDescriptor': '6', 'TemperatureDescription': 'Cool', 'HighTemp': '20', 'LowTemp': '17', 'UV': 'High', 'AirDescription': '29', 'Air': 'Comfortable', 'Description': 'Morning clouds. Cool.', 'Temperature': None, 'WindSpeed': '55', 'Beaufort': None, 'BeaufortDescriptor': None, 'WindDirection': None, 'WindDirectionAbreviated': None, 'WindDirectionDescription': None, 'DewPoint': None, 'Humidity': None, 'Comfort': None, 'Visibility': None, 'Rainfall': None, 'Snowfall': None, 'PrecipitationProbability': None, 'Icon': '4', 'IconName': 'partly_cloudy', 'Cached': False}], 'Cached': False}}

标签: pythonpython-3.x

解决方案


只需遍历想要的键:

for forecast in ['Date', 'HighTemp', 'LowTemp', 'Rainfall', 'Windspeed']:
  print weather_data['value']['Forecast'][forecast]

推荐阅读