Python Forum
Error 'object has no attribute' when iterating thru a dictionary
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Error 'object has no attribute' when iterating thru a dictionary
#6
I executed your suggestion below (removed if match). Then I got this error:
print([index for index, value in enumerate(v) if match in value])
TypeError: 'in <string>' requires string as left operand, not list


Now I converted both values 'v' and interface 'match' variables to string.

Now the result I see is the below. I am getting no matches at this point. In my case the output of 'interfaces' and 'CPU' is coming from an appliance. I am printing the original value for you to see it. So if I try the 'index', I get the error above complaining it requires a string. But then if I convert it to string, the operations with 'index' may no longer be valid, correct?

print (f'Original data from appliance, dictionary:{arch_dic}')

for k, v in arch_dic.items():
    v = str(v)
    match = str(match)
    print(f'type of values v {type(v)} {v} and type of interface:{type(match)} {match} ')
    print([index for index, value in enumerate(v) if match in value])
#I am not getting a match:

Original data from appliance, dictionary:defaultdict(<class 'list'>, {'PSE2': ['0/7/CPU0', '1/0/CPU0', '1/2/CPU0']})
type of values v <class 'str'> ['0/7/CPU0', '1/0/CPU0', '1/2/CPU0'] and type of interface:<class 'str'> ['0/5']
[]
Original data from appliance, dictionary:defaultdict(<class 'list'>, {'PSE2': ['0/7/CPU0', '1/0/CPU0', '1/2/CPU0']})
type of values v <class 'str'> ['0/7/CPU0', '1/0/CPU0', '1/2/CPU0'] and type of interface:<class 'str'> ['0/7']
[]
exit...


(Apr-07-2019, 09:59 PM)Yoriz Wrote:
from collections import defaultdict
arch_dic = {}
arch_dic = defaultdict(list)
arch_dic['PSE2'].append("0/7/CPU0")
arch_dic['PSE2'].append("1/7/CPU0")
arch_dic['PSE2'].append("0/7/CPU0")
arch_dic['PSE2'].append("0/7/CPU0")
arch_dic['PSE2'].append("1/7/CPU0")
match='0/7' 

for k, v in arch_dic.items():
    print (f'Interface:{match}   CPU list:{v}')
    print([index for index, value in enumerate(v) if match in value])
Output:
Interface:0/7 CPU list:['0/7/CPU0', '1/7/CPU0', '0/7/CPU0', '0/7/CPU0', '1/7/CPU0'] [0, 2, 3]
if match in v will only match if the whole string matches, the above will find any index with the partial sting in.
Reply


Messages In This Thread
RE: Error 'object has no attribute' when iterating thru a dictionary - by mrapple2020 - Apr-07-2019, 11:10 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Error: audioio has no attribute 'AudioOut' netwrok 3 701 Oct-22-2023, 05:53 PM
Last Post: netwrok
  AttributeError: '_tkinter.tkapp' object has no attribute 'username' Konstantin23 4 1,833 Aug-04-2023, 12:41 PM
Last Post: Konstantin23
  Need help with 'str' object is not callable error. Fare 4 891 Jul-23-2023, 02:25 PM
Last Post: Fare
  Python: AttributeError: 'PageObject' object has no attribute 'extract_images' Melcu54 2 4,042 Jun-18-2023, 07:47 PM
Last Post: Melcu54
  Object attribute behavior different in 2 scripts db042190 1 783 Jun-14-2023, 12:37 PM
Last Post: deanhystad
  cx_oracle Error - AttributeError: 'function' object has no attribute 'cursor' birajdarmm 1 2,478 Apr-15-2023, 05:17 PM
Last Post: deanhystad
  Pandas AttributeError: 'DataFrame' object has no attribute 'concat' Sameer33 5 5,844 Feb-17-2023, 06:01 PM
Last Post: Sameer33
  WebDriver' object has no attribute 'find_element_by_css_selector rickadams 3 6,047 Sep-19-2022, 06:11 PM
Last Post: Larz60+
  'dict_items' object has no attribute 'sort' Calli 6 4,626 Jul-29-2022, 09:19 PM
Last Post: Gribouillis
  AttributeError: 'numpy.ndarray' object has no attribute 'load' hobbyist 8 7,255 Jul-06-2022, 10:55 AM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020