Python:使用IPython.display从网址获取CSV数据时出现TypeError

如何解决Python:使用IPython.display从网址获取CSV数据时出现TypeError

我正在尝试从python JupyterNotebook中的直接URL提取数据。但是我遇到的错误确实让我感到沮丧。

这是我要获取链接

https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data

我只是将Jupyter Notebook功能用作:

from IPython.display import HTML
HTML('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data')

我得到的错误如下:

TypeError                                 Traceback (most recent call last)
<ipython-input-15-0a8be2c0a7c6> in <module>
      1 from IPython.display import HTML
----> 2 HTML('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data')

C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\display.py in __init__(self,data,url,filename,Metadata)
    693         if warn():
    694             warnings.warn("Consider using IPython.display.IFrame instead")
--> 695         super(HTML,self).__init__(data=data,url=url,filename=filename,Metadata=Metadata)
    696 
    697     def _repr_html_(self):

C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\display.py in __init__(self,Metadata)
    619 
    620         self.reload()
--> 621         self._check_data()
    622 
    623     def __repr__(self):

C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\display.py in _check_data(self)
    668     def _check_data(self):
    669         if self.data is not None and not isinstance(self.data,str):
--> 670             raise TypeError("%s expects text,not %r" % (self.__class__.__name__,self.data))
    671 
    672 class Pretty(TextdisplayObject):

TypeError: HTML expects text,not b'5.1,3.5,1.4,0.2,Iris-setosa\n4.9,3.0,Iris-setosa\n4.7,3.2,1.3,Iris-setosa\n4.6,....

非常感谢您的帮助。

解决方法

该错误是由于HTML()个用户期望CSV造成的。

使用熊猫read_csv轻松便捷地读取CSV文件:

import pandas as pd
data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data')
print(data)

输出:

     5.1  3.5  1.4  0.2     Iris-setosa
0    4.9  3.0  1.4  0.2     Iris-setosa
1    4.7  3.2  1.3  0.2     Iris-setosa
2    4.6  3.1  1.5  0.2     Iris-setosa
3    5.0  3.6  1.4  0.2     Iris-setosa
4    5.4  3.9  1.7  0.4     Iris-setosa
..   ...  ...  ...  ...             ...
144  6.7  3.0  5.2  2.3  Iris-virginica
145  6.3  2.5  5.0  1.9  Iris-virginica
146  6.5  3.0  5.2  2.0  Iris-virginica
147  6.2  3.4  5.4  2.3  Iris-virginica
148  5.9  3.0  5.1  1.8  Iris-virginica

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?