1
Я новичок в python3, и получаю следующую ошибку, пытаясь прочитать данные землетрясения с прошлого дня !!ТипError: unorderable types: NoneType()> int()
Traceback (most recent call last):
File "Z:\Python learning\Up and run\Exercise Files\Ch5\jsondata_finished.py", line 54, in <module>
main()
File "Z:\Python learning\Up and run\Exercise Files\Ch5\jsondata_finished.py", line 49, in main
printResults(data)
File "Z:\Python learning\Up and run\Exercise Files\Ch5\jsondata_finished.py", line 33, in printResults
if (feltReports != None) & (feltReports > 0):
TypeError: unorderable types: NoneType() > int()
Не удается идентифицировать ошибку. Вот мой КОД:
import urllib.request
import json
def printResults(data):
# Use the json module to load the string data into a dictionary
theJSON = json.loads(data.decode())
# now we can access the contents of the JSON like any other Python object
if "title" in theJSON["metadata"]:
print (theJSON["metadata"]["title"])
# output the number of events, plus the magnitude and each event name
count = theJSON["metadata"]["count"];
print (str(count) + " events recorded")
# for each event, print the place where it occurred
for i in theJSON["features"]:
print (i["properties"]["place"])
# print the events that only have a magnitude greater than 4
# for i in theJSON["features"]:
# if i["properties"]["mag"] >= 4.0:
# print "%2.1f" % i["properties"]["mag"], i["properties"]["place"]
# print only the events where at least 1 person reported feeling something
print ("Events that were felt:")
for i in theJSON["features"]:
feltReports = i["properties"]["felt"]
if (feltReports != None) & (feltReports > 0):
print ("%2.1f" % i["properties"]["mag"], i["properties"]["place"], " reported " + str(feltReports) + " times")
def main():
# define a variable to hold the source URL
# In this case we'll use the free data feed from the USGS
# This feed lists all earthquakes for the last day larger than Mag 2.5
urlData = "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson"
# Open the URL and read the data
webUrl = urllib.request.urlopen(urlData)
print (webUrl.getcode())
if (webUrl.getcode() == 200):
data = webUrl.read()
# print out our customized results
printResults(data)
else:
print ("Received an error from server, cannot retrieve results " + str(webUrl.getcode()))
if __name__ == "__main__":
main()
Пожалуйста, помогите! Я попытался сделать несколько вещей, посмотрев на решения других пользователей, но все же я получал одну и ту же ошибку снова и снова.
'&' - побитовый оператор, вам нужно использовать 'и'. – vaultah
Спасибо. Решила мою проблему! Можете ли вы опубликовать ссылку о том, как я могу в будущем противостоять таким ошибкам. –