![](/img/trans.png)
[英]TypeError: argument of type 'NoneType' is not iterable python
[英]Using Python for web scraping: TypeError: argument of type 'NoneType' is not iterable
import urllib.request, urllib.parse, urllib.error
import json
serviceurl = "http://python-data.dr-chuck.net/geojson?"
while True:
address = "Farmingdale State University"
if len(address) < 1 :
break
url = serviceurl + urllib.parse.urlencode({'sensor':'false','address':address})
print ('Retrieving',url)
uh =urllib.request.urlopen(url)
data = uh.read()
print ('Retrived',len(data),'characters')
try: (js) = json.loads(str(data))
except: (js) = None
if ('status' not in js) or (js['status'] != 'OK'):
print ('==== Failure To Retrieve ====')
print (data)
continue
placeid = js["results"][0]['place_id']
print ("Place id",placeid)
在if('status'not in js)或(js ['status']!='OK')中的文件“”,第23行:
TypeError:“ NoneType”類型的參數不可迭代
如果js為None,則將出現此錯誤。 嘗試檢查js是否為True,然后再進一步檢查其內容。
現在,當您的代碼無法通過try塊並轉到js除外時,它將被設置為None,然后是否仍然檢查了感度。
例如
import urllib.request, urllib.parse, urllib.error
import json
serviceurl = "http://python-data.dr-chuck.net/geojson?"
address = "Farmingdale State University"
url = serviceurl + urllib.parse.urlencode({'sensor':'false','address':address})
while True:
uh =urllib.request.urlopen(url)
response = uh.read()
data = json.loads(response)
if 'status' in data and data['status'] != 'OK':
continue
#check place_id is exists in dictionary
if 'results' in data and len(data['results']) > 0 and 'place_id' in data['results'][0]:
print(data["results"][0]['place_id'])
break
O / P:
ChIJScDUqFcq6IkRpvubNFOAVmw
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.