
前两天用Python做爬虫的时候,Pandas读取json数据报错:raise ValueError(“Protocol not known: %s” % protocol)。
出现这个问题是因为用了高版本的Pandas,高版本Pandas对read_jso 函数进行了一些更改。
看起来read_json现在寻找的是类似文件的对象,而不是类似字符串的对象。StringIO为字符串提供了类似文件的接口。从pandas的文档中发现:通过类文件对象,我们使用read()方法引用对象,例如文件处理程序(例如,通过内置的open函数)或StringIO。
解决方法
from io import StringIO
import pandas as pd
df = pd.read_json(StringIO(data))