无法访问某些字典键

2024-10-01 07:41:08 发布

您现在位置:Python中文网/ 问答频道 /正文

非常简单的问题,我有下面显示的python字典,为什么我不能访问大多数键,除了那些值为方括号的键,我假设它们是列表

例如,我无法使用dict_name['wavelength']访问键“波长”

如果我这样做,它会简单地返回一个KeyError“波长”

为我从matlab搬到这里的行为道歉

> {'interleave': 0, 'bands': <spectral.spectral.BandInfo object at
> 0x000001735789A910>, 'nbands': 162, 'nrows': 2821, 'ncols': 2841,
> 'dtype': '<f4', 'metadata': {'description': 'PARGE Geocoded 
> Samford3_16113_18658_rad ENVI-File', 'samples': '2841', 'lines':
> '2821', 'bands': '162', 'header offset': '0', 'file type': 'ENVI
> Standard', 'data type': '4', 'interleave': 'BSQ', 'sensor type': 'ENVI
> Standard', 'byte order': '0', 'x start': '1', 'y start': '1', 'map
> info': ['Transverse_Mercator', '1', '1', '488122.975', '6970570.025',
> '0.050000000', '0.050000000', 'D_GDA_1994', 'units=meters'],
> 'coordinate system string': ['PROJCS["GDA_1994_MGA_Zone_56"',
> 'GEOGCS["GCS_GDA_1994"', 'DATUM["D_GDA_1994"', 'SPHEROID["GRS_1980"',
> '6378137.0', '298.257222101]]', 'PRIMEM["Greenwich"', '0.0]',
> 'UNIT["Degree"', '0.0174532925199433]]',
> 'PROJECTION["Transverse_Mercator"]', 'PARAMETER["False_Easting"',
> '500000.0]', 'PARAMETER["False_Northing"', '10000000.0]',
> 'PARAMETER["Central_Meridian"', '153.0]', 'PARAMETER["Scale_Factor"',
> '0.9996]', 'PARAMETER["Latitude_Of_Origin"', '0.0]', 'UNIT["Meter"',
> '1.0]]'], 'default bands': ['109.00000', '74.000000', '36.000000'],
> 'pixel size': ['0.050000000', '0.050000000'], 'wavelength':
> ['401.57755', '405.28516', '408.99208', '412.69833', '416.40390',
> '420.10883', '423.81311', '427.51677', '431.21982', '434.92227',
> '438.62412', '442.32541', '446.02613', '449.72630', '453.42594',
> '457.12506', '460.82366', '464.52177', '468.21940', '471.91655',
> '475.61325', '479.30950', '483.00532', '486.70072', '490.39572',
> '494.09032', '497.78455', '501.47841', '505.17191', '508.86507',
> '512.55791', '516.25043', '519.94265', '523.63458', '527.32623',
> '531.01762', '534.70877', '538.39967', '542.09035', '545.78082',
> '549.47110', '553.16118', '556.85110', '560.54086', '564.23047',
> '567.91995', '571.60931', '575.29856', '578.98771', '582.67679',
> '586.36580', '590.05475', '593.74367', '597.43255', '601.12142',
> '604.81028', '608.49915', '612.18805', '615.87698', '619.56597',
> '623.25501', '626.94413', '630.63334', '634.32264', '638.01207',
> '641.70161', '645.39130', '649.08114', '652.77115', '656.46134',
> '660.15172', '663.84230', '667.53310', '671.22413', '674.91541',
> '678.60694', '682.29874', '685.99083', '689.68321', '693.37590',
> '697.06891', '700.76226', '704.45595', '708.15000', '711.84443',
> '715.53925', '719.23446', '722.93009', '726.62614', '730.32263',
> '734.01958', '737.71699', '741.41487', '745.11325', '748.81213',
> '752.51152', '756.21145', '759.91192', '763.61294', '767.31454',
> '771.01671', '774.71948', '778.42286', '782.12685', '785.83149',
> '789.53676', '793.24270', '796.94931', '800.65660', '804.36460',
> '808.07330', '811.78273', '815.49290', '819.20381', '822.91549',
> '826.62795', '830.34120', '834.05525', '837.77011', '841.48580',
> '845.20234', '848.91972', '852.63798', '856.35712', '860.07714',
> '863.79808', '867.51994', '871.24272', '874.96645', '878.69115',
> '882.41681', '886.14345', '889.87110', '893.59975', '897.32943',
> '901.06014', '904.79190', '908.52473', '912.25863', '915.99361',
> '919.72970', '923.46691', '927.20524', '930.94471', '934.68533',
> '938.42712', '942.17009', '945.91425', '949.65962', '953.40620',
> '957.15401', '960.90307', '964.65339', '968.40498', '972.15784',
> '975.91201', '979.66748', '983.42428', '987.18241', '990.94189',
> '994.70273', '998.46494'], 'fwhm': ['4.7500000', '4.7500000',
> '4.7500000', '4.7500000', '4.7500000', '4.7500000', '4.7500000',
> '4.7500000', '4.7500000', '4.7500000', '4.7500000', '4.7500000',
> '4.7500000', '4.7500000', '4.7500000', '4.7500000', '4.7500000',
> '4.7500000', '4.7500000', '4.7500000', '4.7500000', '4.7600000',
> '4.7700000', '4.7700000', '4.7800000', '4.7900000', '4.8000000',
> '4.8100000', '4.8100000', '4.8200000', '4.8300000', '4.8400000',
> '4.8500000', '4.8600000', '4.8600000', '4.8700000', '4.8800000',
> '4.8900000', '4.9000000', '4.9100000', '4.9100000', '4.9200000',
> '4.9300000', '4.9400000', '4.9500000', '4.9600000', '4.9600000',
> '4.9700000', '4.9800000', '4.9900000', '4.9900000', '5.0000000',
> '5.0000000', '5.0000000', '5.0000000', '5.0100000', '5.0100000',
> '5.0100000', '5.0200000', '5.0200000', '5.0200000', '5.0300000',
> '5.0300000', '5.0300000', '5.0400000', '5.0400000', '5.0400000',
> '5.0500000', '5.0500000', '5.0500000', '5.0600000', '5.0600000',
> '5.0600000', '5.0600000', '5.0700000', '5.0700000', '5.0700000',
> '5.0800000', '5.0800000', '5.0800000', '5.0900000', '5.0900000',
> '5.0900000', '5.1000000', '5.1000000', '5.1000000', '5.1100000',
> '5.1100000', '5.1100000', '5.1200000', '5.1200000', '5.1200000',
> '5.1200000', '5.1300000', '5.1300000', '5.1300000', '5.1400000',
> '5.1400000', '5.1400000', '5.1500000', '5.1500000', '5.1500000',
> '5.1600000', '5.1600000', '5.1600000', '5.1700000', '5.1700000',
> '5.1700000', '5.1800000', '5.1800000', '5.1800000', '5.1800000',
> '5.1900000', '5.1900000', '5.1900000', '5.2000000', '5.2000000',
> '5.2000000', '5.2100000', '5.2100000', '5.2100000', '5.2200000',
> '5.2200000', '5.2200000', '5.2300000', '5.2300000', '5.2300000',
> '5.2300000', '5.2300000', '5.2300000', '5.2300000', '5.2300000',
> '5.2400000', '5.2400000', '5.2400000', '5.2400000', '5.2400000',
> '5.2400000', '5.2400000', '5.2400000', '5.2400000', '5.2400000',
> '5.2400000', '5.2500000', '5.2500000', '5.2500000', '5.2500000',
> '5.2500000', '5.2500000', '5.2500000', '5.2500000', '5.2500000',
> '5.2500000', '5.2500000', '5.2500000', '5.2500000', '5.2500000',
> '5.2500000', '5.2500000', '5.2500000', '5.2500000', '5.2500000'], 'gps
> long-lat-alt': ['488195.19', '6970498.6', '152.10562'], 'heading
> [deg]': '120.00001', 'dem height [m]': '84.000000', 'sync time
> [dec.h]': '4.7497277'}, 'filename':
> 'C:/Users/emici/Downloads/data_tests/Samford3_16113_18658_rad_geo.bsq',
> 'offset': 0, 'byte_order': 0, 'swap': 0, 'sample_size': 4, 'fid':
> <_io.BufferedReader
> name='C:/Users/emici/Downloads/data_tests/Samford3_16113_18658_rad_geo.bsq'>,
> 'shape': (2821, 2841, 162), 'scale_factor': 1.0, '_memmap':
> memmap([[[0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          ...,
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.]],
> 
>         [[0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          ...,
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.]],
> 
>         [[0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          ...,
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.]],
> 
>         ...,
> 
>         [[0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          ...,
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.]],
> 
>         [[0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          ...,
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.]],
> 
>         [[0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          ...,
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.],
>          [0., 0., 0., ..., 0., 0., 0.]]], dtype=float32)}

Tags: namedataparametertypeoffsetspectraldtype波长
2条回答

首先尝试格式化dictionary/json,在这种情况下可能会有所帮助。也就是说,如果你得到KeyError: wavelength..,这意味着它找不到确切的密钥

根据您发布的数据,您想要的键(“波长”)很可能是嵌套的-dict_name['some_key']['wavelength']或格式不正确的wavelength 。请检查这些类型的内容

这是因为该值位于另一个字典中

试用

dict_name['metadata']['wavelength']

相关问题 更多 >