shubham goyal wrote: > null=None > x={'_udp_options': None, '_icmp_options': None, 'attribute_map': > {'icmp_options': 'icmpOptions', 'protocol': 'protocol', 'source': > {'source', > 'tcp_options': 'tcpOptions', 'is_stateless': 'isStateless', 'udp_options': > 'udpOptions'}, '_is_stateless': False, 'swagger_types': {'icmp_options': > 'IcmpOptions', 'protocol': 'str', 'source': 'str', 'tcp_options': > 'TcpOptions', 'is_stateless': 'bool', 'udp_options': 'UdpOptions'}, > '_protocol': '6', '_source': '0.0.4.0/24', '_tcp_options': { > "destination_port_range": { > "max": "22", > "min": "22" > }, > "source_port_range": null > }} > > y={'_udp_options': None, '_icmp_options': None, 'attribute_map': > {'icmp_options': 'icmpOptions', 'protocol': 'protocol', 'source': > {'source', > 'tcp_options': 'tcpOptions', 'is_stateless': 'isStateless', 'udp_options': > 'udpOptions'}, '_is_stateless': False, 'swagger_types': {'icmp_options': > 'IcmpOptions', 'protocol': 'str', 'source': 'str', 'tcp_options': > 'TcpOptions', 'is_stateless': 'bool', 'udp_options': 'UdpOptions'}, > '_protocol': '6', '_source': '0.0.4.0/24', '_tcp_options': { > "destination_port_range": { > "max": 22, > "min": 22 > }, > "source_port_range": null > }} > if x==y: > print "true" > else: > print "false" > > > These dictionaries are same exactly. but its returning false. i don't > understand > what to do?
Let's narrow down the problem, with the help of the interactive interpreter: >>> changed = [k for k in x if x[k] != y[k]] >>> changed ['_tcp_options'] >>> k, = changed A closer look: >>> x[k] {'source_port_range': None, 'destination_port_range': {'max': '22', 'min': '22'}} >>> y[k] {'source_port_range': None, 'destination_port_range': {'max': 22, 'min': 22}} So x uses strings for min/max while y uses integers, and those do not compare equal in Python: >>> 22 == "22" False Once you fix this >>> x[k]["destination_port_range"]["max"] = 22 >>> x[k]["destination_port_range"]["min"] = 22 you get the expected result: >>> x == y True _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor