2017-10-12 22 views
-1

我使用蟒蛇3.6.1和檢索JSON數據有以下代碼以JSON格式成功地檢索數據:NameError在功能

import urllib.request,json,pprint 

url = "https://someurl" 
response = urllib.request.urlopen(url) 
data = json.loads(response.read()) 
pprint.pprint(data) 

我想在一個函數來包裝這個,所以我可以重複使用它。這是我在一個名爲getdata.py曾嘗試:

from urllib.request import urlopen 
import json 


def get_json_data(url): 
    response = urlopen(url) 
    return json.loads(response.read()) 

,這是錯誤導入該文件並嘗試打印出來的響應後,我得到:

>>> import getdata 
>>> print(getdata.get_json_data("https://someurl")) 

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "C:\Users\Nick\getdata.py", line 6, in get_json_data 
from urllib.request import urlopen 
NameError: name 'urllib' is not defined 

我也嘗試這和得到了同樣的錯誤:

import urllib.request,json 


def get_json_data(url): 
    response = urllib.request.urlopen(url) 
    return json.loads(response.read()) 

我需要做什麼才能使這工作?

歡呼聲

+0

奇怪。你的堆棧跟蹤說錯誤在第6行,但第6行不是'from urllib.request import urlopen'。你確定這就是出現的錯誤信息嗎? – Kevin

+0

@Kevin是錯誤是在那條線上,但我認爲問題是與原子包。請參閱下面的答案。歡呼 – Nick

+0

我投票結束這個問題作爲題外話,因爲問題消失了。 – martineau

回答

0

它現在工作!我認爲問題是我對Atom編輯器的氫添加劑。我卸載它,再次嘗試,它的工作。感謝您的期待。

+0

在這種情況下,我建議刪除你的問題,我懷疑它對其他人有多大的價值 – martineau

+0

其實你錯了。這裏的同事有jupyter noteb ooks和相同的原子設置。即使使用更新版本的python.took,他也遇到了同樣的問題,它的工作方式相同。這麼多沒有價值.. – Nick