keyerror_keyerror异常 - CSDN
精华内容
参与话题
  • 【Python】KeyError解决方法

    万次阅读 2014-03-13 21:13:46
    #如果不知道dict中是否有key的值 dict.get(key) #如果用 dict[key] 读取会报KeyError异常
    #如果不知道dict中是否有key的值
    
    dict.get(key)
    
    #如果用 dict[key] 读取会报KeyError异常

    展开全文
  • KeyError错误

    千次阅读 2019-11-27 10:12:26
    KeyError错误出现时可能是检索不到这个键名,就我自己碰到的这个问题来说,是编码的原因。前因是用了一个别人写的读取标定参数的函数 def read_calib_file(path): # taken from https://github.com/hunse/kitti ...

     

    KeyError错误出现时可能是检索不到这个键名,就我自己碰到的这个问题来说,是编码的原因。前因是用了一个别人写的读取标定参数的函数

    def read_calib_file(path):
        # taken from https://github.com/hunse/kitti
        float_chars = set("0123456789.e+- ")
        data = {}
        with open(path, 'rb') as f:
            for line in f.readlines():
                key, value = line.split(':'.encode(), 1)
                value = value.strip()
                data[key] = value
                if float_chars.issuperset(value):
                    # try to cast to float array
                    try:
                        data[key] = np.array(list(map(float, value.split(' '))))
                    except ValueError:
                        # casting error: data[key] already eq. value, so pass
                        pass
    
        return data

    先用velo2cam变量存储整个参数文件,需要读取的一行参数内容为:R: 7.533745e-03 -9.999714e-01 -6.166020e-04 1.480249e-02 7.280733e-04 -9.998902e-01 9.998621e-01 7.523790e-03 1.480755e-02,但是读取的时候输入

    velo2cam['R']

    出现了KeyError ‘R’,发现是因为读取不到R,因为它是字符串str格式的,需要把它转换成byte格式,即

    velo2cam['R'.encode()]

    得到的返回值也是一个byte格式,后续要用还需要转回str,然后再转成list

    velo2cam['R'.encode()].decode()

     

     

     

     

    展开全文
  • python-Key Error问题

    万次阅读 2018-07-10 12:14:58
    【问题描述】当从数据库以标签形式大批量处理数据时,会因为不同的数据返回的标签数目不同而导致在使用标签来来索引数据时出现问题。(pandas转为数据框之后)例如数据:a = {"id":[1,2,3,4,5],"...

    【问题描述】

    当从数据库以标签形式大批量处理数据时,会因为不同的数据返回的标签数目不同而导致在使用标签来来索引数据时出现问题。(pandas转为数据框之后)

    例如

    数据:

    a = {"id":[1,2,3,4,5],"birthday":['2000-01-01','',None,'2000-01-19',NaN],"name":['王菲','莫文蔚',NaN,None,'林宥嘉'],"score":[100,99,NaN,98,None]}
    a = pd.DataFrame(test)
    a

    a['gender']

    报错信息如下:


    原因就是原数据中没有'gender'这个键。

    【解决办法】

    1) 设置条件语句:

    index_of_a = list(a.columns.values)   #获取dataframe中包含字段的列表
    b = 'gender'
    c = 'name'
    if b in list(index_of_a):
        print(a[b])
    else:
        print('not exist!')
    if c in list(index_of_a):
        print(a[c])
    else:
        print('not exist!')

    2)运用get():利用dict内置的get(key,default)方法,如果key存在,则返回其value,否则返回default;使用这个方法永远不会触发Key Error.

    print(a.get('gender'))
    print(a.get('gender','不存在!'))
    print(a.get('name','不存在!'))

    参考:python:操作dict时避免出现Key Error的几种方法

    (仅供个人学习,不负责任~~~~~~~~~~~~)

    展开全文
  • Python字典查找报Keyerror解决方法

    万次阅读 多人点赞 2018-07-18 14:40:09
    但是如果在查找的key不存在的时候就会报:KeyError: 比如你要查看print(dict['d']) 由于这个时候dict里面并没有这个key ,所以就会直接报错,那么这个时候其实python给我们提供了一种很棒的解决方法,那就是用 ...

    Python的字典一般都直接查找key ,比如

    dict={'a':1,'b':2,'c':3}
    print(dict['a'])

    但是如果在查找的key不存在的时候就会报:KeyError:

    比如你要查看print(dict['d'])

    由于这个时候dict里面并没有这个key ,所以就会直接报错,那么这个时候其实python给我们提供了一种很棒的解决方法,那就是用

    setdefault,用法如下: dict.setdefault(key,[这里设置如果不存在想将值设置为啥,默认为None])

    那么这里我们可以用此方法解决:

    print(dict.setdefault('d',0))

          然后就没有问题啦,注意下就是setdefault是如果要想往dict中添加新值的时候就使用此函数,如果只是单纯想要做查找,碰到key不存在或者希望在通过这个键读取值的时候能得到一个默认值,那么建议用defaultdict

    首先先介绍下这个所谓的defaultdict,来自于collections模块,collections是个集合模块,defaultdict(function_factory)构建的是一个类似dictionary的对象,其中key的值,自行确定赋值,但是value的类型是function_factory的类实例,而且具有默认值.这里还引入了一个概念就是工厂函数,python的工厂函数就是指那些内建函数都是类对象,当你调用他们时,实际上是创建了一个类实例。比如int(),str(),set()等,这里我们看下例子:

    import collections
    s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
    d = collections.defaultdict(list)
    for k, v in s:
        d[k].append(v)
    print(d['yellow'])
    print(d['white'])
    print(list(d.items()))
    

    我们最后得到的输出结果如下:

    我们可以看到,当d中没有对应的key时最后返回的是个空列表,那是因为我们在设置defaultdict的时候用的工厂函数是list,而list的默认值是空列表,下面我们在看下如果工厂函数是set()会是什么样子

    import collections
    s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
    d = collections.defaultdict(set)
    for k, v in s:
        d[k].add(v)
    print(d['yellow'])
    print(d['white'])
    print(list(d.items()))

    结果输出如下:

     

     

    展开全文
  • 在读取dict的key和value时,如果key不存在,就会触发KeyError错误,如: t = { 'a': '1', 'b': '2', 'c': '3', } print(t['d']) 就会出现: KeyError: 'd' 第一种解决方法 首先测试key是否存在,然后才...
  • Python KeyError异常

    万次阅读 2016-09-24 20:19:24
    如果用dict[key]这个读取会报KeyError异常, dict.get方法主要是提供一个取不到对应key的value就返回默认值的功能, 而dict[key]实际上是调用了__getitem__方法 说明: D.get(key[, d]) ->D[k] if k in D, ...
  • keyerror

    千次阅读 2018-04-27 10:35:24
    django中提交表单,遇到了keyerror问题获取不到提交的数据解决办法:添加提交方法的判断: if request.method == 'POST': uname = request.POST['uname']
  • python字符串模板中的KeyError

    万次阅读 2014-06-26 21:10:20
    由于新式的字符串Template对象的引进使得string 模块又重新活了过来,Template对象有两个方法:substitute()和safe_substitute()。 python中string的Template类似C语言中printf中的,使用“${*}”声明变量(类似...
  • KeyError:0

    万次阅读 2019-03-24 09:58:50
    dict的key不存在是会报这个错误,使用setdefault函数给key先设置默认值可以解决这个问题
  • python运行出现错误KeyError: ':'

    千次阅读 2019-12-29 11:43:40
    冒号中英文切换的问题 即使是在 ‘ ’ 里的,也要注意用英文 例如:下图中之前使用了中文冒号导致报错
  • python 程序报错 KeyError: '1'

    万次阅读 2019-05-23 13:48:27
    这个错误一般发生在对字典、列表等遍历的时候,错误原因很可能是下标溢出,比如定义dict[1] = {},...另外,有可能key不存在,比如定义dict[1] = {},而不小心给dict[‘1’] 赋值,这是类型不一致导致的key不存在。 ...
  • Log4j ERROR: log4j:ERROR Could not find value for key log4j.appender.CONSOLE 解决方法: 在log4j.properties 加入以下配置 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j....
  • KeyError: '1'

    万次阅读 2018-05-17 17:48:24
    访问字典中的键--值对时出现错误:KeyError: '1'先生成了一个字典:movies={id: title },该字典的键值是从某文件中读取生成的;在访问该字典中的键时出现错误:KeyError: '1',找不到字典中id为1的键,但是文件中有...
  • Trse KeyError(key)aceback (most recent call last):  File "/root/pyrun/wechat_crawl/articles_update_exec.py", line 3, in <module>  from articles_update import *  File "/...
  • BUG:pymongo.errors.DuplicateKeyError: E11000 duplicate key error collection的原因和解决方案 一. BUG描述: 使用Scrapy把数据添加到mongodb时,无法添加,抛出异常如下: pymongo.errors.DuplicateKeyError...
  • log4j:ERROR Could not find value for key log4j.appender.Console log4j:ERROR Could not instantiate appender named "Console". 解决方法:也就是第一行存在大小写问题,改成大写后程序就能正常打印出sql语句了 ...
  • 解决mongodb id 重复问题mongodb在插入数据时出现id重复... { [MongoError: E11000 duplicate key error collection: zhihu.people index: id dup key: { : ObjectId(‘59a3b9275f063c20cc8bdec7’) }] name: ‘Mongo
  • 我是在rootLogger末尾加入R就好了。 最终我的配置环境如下: ...log4j.rootLogger=info,error,R #DailyRollingFileAppender每天产生一个日志文件 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender #
  • Error selecting key or setting result to parameter object 原因是你的实体类型,XML映射文件里的类型不一致导致报错 实体类型: public class Entity{ private Integer pKID; } Mybatis.xml文件配置 <...
  • Error opening registry key 'Software\JavaSoft\Java Runtime Environment.3' Error: could not find Java.dll Error: could not find Java 2 Runtime Environment 解决方案:对于Win7系统64位机: 将C盘中
1 2 3 4 5 ... 20
收藏数 732,071
精华内容 292,828
关键字:

keyerror