python报错 TypeError: string indices must be integers

所以在读取字典的时候,最好先判断类型,然后再查看它是否已经有这样的属性:

type(mydict) == type({})             #检查不是字典

如果是字典,再看看有没有这样的属性:mydict.has_key(‘mykey‘)

1、 看看变量是否是字典   2、检查字典是否有对应的key值

    if ‘like‘ in condition:
        cond_str1 = condition.split(‘like‘)[0].strip()
        cond_str2 = condition.split(‘like‘)[1].strip()
        print(staff_info)
        ret = filter(lambda x:cond_str2 in str(x[cond_str1]), staff_info)       # 这里字典写错 

原文地址:https://www.cnblogs.com/Mr-wangxd/p/9531770.html

时间: 2024-10-04 20:13:46

python报错 TypeError: string indices must be integers的相关文章

python 报错TypeError: 'range' object does not support item assignment,解决方法

贴问题 nums = range(5)#range is a built-in function that creates a list of integers print(nums)#prints "[0,1,2,3,4]" print(nums[2:4])#Get a slice from index 2 to 4 (exclusive); prints '[2,3]" print(nums[2:])#Get a slice from index 2 to the end

TypeError: string indices must be integers, not str

1. TypeError: string indices must be integers, not str 字符串类型取第index个字符的时候,应该传入int而不是str.如 view source print? 1 a='abcdef' 2 print a[0] 3 #而不是 print a['0'] 更常见的情况是把一个string当成了字典在使用 :should_be_dict_but_string['id'] .这样的错误

读取页面返回字典值提示错误:TypeError: string indices must be integers, not str

路由器get_rand_key.cgi返回用于后续AES加密的随机数,该返回值是字典. 如下代码, print pagetext返回字典{"rand_key":"c9d8b128f26058c5a684a212100bba0204beaf1795d227da4601869dd83045cd"} print pagetext['rand_key']提示错误TypeError: string indices must be integers, not str impor

python框架Scrapy报错TypeError: 'float' object is not iterable解决

原因是:Twisted版本高了. 解决办法: 只要把Twisted库降级到16.6.0即可: 1 pip3 install Twisted==16.6.0 2 3 注:Twisted16.6.0安装后,会自动卸载高版本的Twisted python框架Scrapy报错TypeError: 'float' object is not iterable解决

python 报错——Python TypeError: 'module' object is not callable 原因分析

原因分析:Python导入模块的方法有两种: import module 和 from module import 区别是前者所有导入的东西使用时需加上模块名的限定,而后者则不需要 例: >>>import pprint >>>pprint.pprint(people) OR >>>from pprint import * >>>pprint(people) 正确的代码:>>> import Person>&g

Python报错:TypeError: __init__() got an unexpected keyword argument 'io_loop' 原因及解决方案

今天打开一个Python文件时,报错提示: TypeError: __init__() got an unexpected keyword argument 'io_loop' 明明是从旧电脑上拷贝到新电脑上的文件,之前运行是OK的,新电脑上运行怎么就报错了呢? 错误原因: 配置python环境时,默认tornado版本是最新的版本(恰好我新电脑重新配置了python环境,所以安装了最新版本),但是在4.0版本之后就废弃了io_loop参数. 解决方案: 1. 先卸载当前安装的tornado p

Python报错:TypeError: data type not understood

K-Means聚类算法 def randCent(dataSet, k): m, n = dataSet.shape # numpy中的shape函数的返回一个矩阵的规模,即是几行几列 centrodids = np.zeros(k, n) for i in range(k): index = int(np.random.uniform(0, m)) # centrodids[i, :] = dataSet[index, :] return centrodids 报错TypeError: dat

Python报错“UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)”的解决办法

最近在用Python处理中文字符串时,报出了如下错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)   1.原因 因为默认情况下,Python采用的是ascii编码方式,如下所示: ?? python -c "import sys; print sys.getdefaultencoding()" ascii ?? 而Python在进行编

Python报错:SyntaxError: Non-ASCII character '\xe5' in file的解决方法

SyntaxError: Non-ASCII character '\xe5' in file 原因:Python默认是以ASCII作为编码方式的,如果在自己的Python源码中包含了中文(或者其他的语言,比如小日本的日语……),此时即使你把自己编写的Python源文件以UTF-8格式保存了:但实际上,这依然是不行的. 解决方法:在源码的第一行添加以下语句: # -*- coding: UTF-8 -*-     或者 #coding=utf-8 (注:此语句一定要添加在源代码的第一行) Pyt