无法使用python从API提取表
我正在尝试使用API提取一个表,但我无法这样做。我很确定我没有正确使用它,任何帮助都将不胜感激 实际上,我正试图从这个API中提取一个表,但无法找到正确的方法。这就是网站上提到的。我想提取最新的完整数据表 这是我获取表格的代码,但我遇到错误:无法使用python从API提取表,python,api,Python,Api,我正在尝试使用API提取一个表,但我无法这样做。我很确定我没有正确使用它,任何帮助都将不胜感激 实际上,我正试图从这个API中提取一个表,但无法找到正确的方法。这就是网站上提到的。我想提取最新的完整数据表 这是我获取表格的代码,但我遇到错误: 导入urllib 导入请求 导入urllib.request 蝗虫api=‘api_密钥’ def蝗虫搜索(查询): api_key=蝗虫api url='1〕https://www.quandl.com/api/v3/databases/WIKI/me
导入urllib
导入请求
导入urllib.request
蝗虫api=‘api_密钥’
def蝗虫搜索(查询):
api_key=蝗虫api
url='1〕https://www.quandl.com/api/v3/databases/WIKI/metadata?api_key=“+api_键
response=urllib.request.urlopen(url.read())
json_obj=str(响应“utf-8”)
datanew=json.load(json_obj)
返回数据新建
当我打印(新数据)时。更新:即使我将其更改为返回新数据,错误仍然相同。
我得到以下错误:
没有定义名称“datanew”我以前在urrlib上也遇到过同样的问题。如果可能的话,试着使用请求。在我看来,这是一个设计更好、工作更好的库。此外,它还能够通过单个函数读取JSON,因此无需通过多行示例代码运行它:
import requests
locu_api = 'api_Key'
def locu_search():
url = 'https://www.quandl.com/api/v3/databases/WIKI/metadata?api_key=' + api_key
return requests.get(url).json()
locu_search()
编辑:
您正在调用的终结点可能不是正确的终结点。我认为您正在寻找以下一个:
import requests
api_key = 'your_api_key_here'
def locu_search(dataset_code):
url = f'https://www.quandl.com/api/v3/datasets/WIKI/{dataset_code}/metadata.json?api_key={api_key}'
req = requests.get(url)
return req.json()
data = locu_search("FB")
这将返回与公司有关的所有元数据。在这种情况下,Facebook。可能不适用于您的特定问题,但我通常会做以下几点:
import requests
def get_values(url):
response = requests.get(url).text
values = json.loads(response)
return values
你能补充更多信息吗?你想在哪里打印?我以前看到过打字错误(
responsen
vsresponse
)。请更正格式。你失去了空间。也许datanew
在函数内部(我不知道,没有缩进),您可以尝试在函数外部打印它。@snakecharmerb谢谢您提供的信息..我尝试过这样做。。错误仍然是一样的..@rysson谢谢你提供的信息。。我把应答改为应答。。错误是一样的。。。是,函数中有新数据。。如果我在外面,我会得到压痕error@Avi,现在我们可以看到代码了。下次请使用缩进。并查找@snakecharmerb评论。最好的解决方案是在Dániel Bencze答案中,使用它。您可以在底部添加datanew=蝗虫搜索()
,然后打印。感谢您的时间和回复。但是,调用函数时仍然会出现错误:我使用了与您提供代码相同的方法,并将其添加到下一行result=蝗虫搜索(查询)打印(结果)。。这是错误名称“query”未定义在这种情况下,您需要在调用函数之前定义query变量,或者将其删除。我已经编辑了我的答案,使用了一个你可以构建的最简单的代码。我想这是我当时猜测的数据问题。。我仍然得到这个错误..JSONDecodeError:期望值:第1行第1列(字符0)是我得到的错误。。将接受答案并关闭。谢谢您的帮助!我还检查了一些东西。因此,请求返回字节,而不是带有500状态码的JSON。这意味着要么您正在调用的端点不存在,要么它们的API有问题。实际返回的消息是以下b”错误-QEMx01:很抱歉,系统中出现意外错误。如果您仍然存在问题,请通过以下地址与我们联系:connect@quandl.com.“
我还为我的答案添加了一个新的解决方案。我相信您的错误只是因为调用了错误的url。@Xerox_04..感谢您的时间和回复,但我在调用函数时仍然收到错误。。结果=未定义获取值(值)打印(结果)名称“值”