Python 遇到ValueError:以10为基数的int()的文本无效:“”错误
参考: 使用:Python 遇到ValueError:以10为基数的int()的文本无效:“”错误,python,python-3.x,dictionary,tuples,Python,Python 3.x,Dictionary,Tuples,参考: 使用: sorted(a, key=lambda x: tuple(int(i) for i in x['host'].split('.'))[::-1]) 逻辑 要对元组进行排序,遇到 ValueError:以10为基数的int的文本无效:错误 请帮我解决一下有些字符不是数字或数字。在输入数据中,数组a 我们不知道您的输入数据,因此我无法直接指向错误,但a中的一个值似乎可能包含字符串错误 这对我来说很好,但不会给出错误: a=[{'host': u'10.219.1.1'}, {'
sorted(a, key=lambda x: tuple(int(i) for i in x['host'].split('.'))[::-1])
逻辑
要对元组进行排序,遇到
ValueError:以10为基数的int的文本无效:错误
请帮我解决一下有些字符不是数字或数字。在输入数据中,数组a 我们不知道您的输入数据,因此我无法直接指向错误,但a中的一个值似乎可能包含字符串错误 这对我来说很好,但不会给出错误:
a=[{'host': u'10.219.1.1'}, {'host': u'10.91.1.1'}, {'host': u'10.219.4.1'}, {'host': u'10.91.4.1'}]
print(sorted(a, key=lambda x: tuple(int(i) for i in x['host'].split('.'))[::-1]) )
它给出以下输出:
[{'host': '10.91.1.1'}, {'host': '10.219.1.1'}, {'host': '10.91.4.1'}, {'host': '10.219.4.1'}]
您是否尝试运行了精确的代码?请执行调试,创建for循环,拆分并转换为int。请查看x['host']包含的内容。我怀疑您会发现它包含的组件不是有效的数字,例如,在本例中,错误,.其中一个I不是数字。对于a中的x:try:printtupleinti for I in x['host'].split'。除了:print>>,x是否可以显示a的值?问题就在那里。至少有一个值不是有效的IPv4地址。a=[{'host':u'10.219.1.1'},{'host':u'10.91.1.1'},{'host':u'10.219.4.1'},{'host':'10.91.4.1'}]sorteda,key=lambda x:tupleinti for i in x['host']拆分''.[{'host':'10.91.1.1'},{'host':'10.91.4.1'},{'host':'10.219,key=lambda x:tupleinti for i in x['host'].split'.[:-1][{'host':'10.91.1.1'},{'host':'10.219.1.1'},{'host':'10.91.4.1'},{'host':'10.219.4.1'}]FYI@SujithKumar是的,但问题是,当我尝试它时,它可以很好地处理特定的数据。所以我假设你没有使用这些数据?@SujithKumar啊,你需要通过编辑问题来发布代码。它不能从注释中复制,所以我们可以测试它,因为新行是从注释中删除的,它们在Python中很重要。