Я пытаюсь отфильтровать список в Python, удаляя все записи типа None, но когда я пытаюсь это сделать, я получаю ошибку «TypeError:« NoneType »объект не повторяется». Я не вижу, где я иду не так.
Исходная ошибка на самом деле пришла со строкой
если у вас "Рестораны" не в бизнесе [у "категорий"]:
Там, где я получил ту же ошибку, что и раньше, поэтому я попытался отфильтровать несколько строк назад, чтобы избежать ее, но столкнулся с той же проблемой
Это полный фрагмент кода, хотя сообщение об ошибке появляется в функции фильтра
import json
restaurant_ids = set()
# open the businesses file
with codecs.open(businesses_filepath, encoding='utf_8') as f:
# iterate through each line (json record) in the file
for business_json in f:
# convert the json record to a Python dict
business = json.loads(business_json)
business[u"categories"] = filter(lambda a: a is not None, business[u"categories"])
print business[u"categories"]
# if this business is not a restaurant, skip to the next one
if u"Restaurants" not in business[u"categories"]:
continue
# add the restaurant business id to our restaurant_ids set
restaurant_ids.add(business[u'business_id'])
# turn restaurant_ids into a frozenset, as we don't need to change it anymore
restaurant_ids = frozenset(restaurant_ids)
# print the number of unique restaurant ids in the dataset
print '{:,}'.format(len(restaurant_ids)), u'restaurants in the dataset.'
Файл, который я пытаюсь отфильтровать, состоит из JSON с множеством записей, которые выглядят следующим образом. В некоторых категориях просто «Нет», что, похоже, является проблемой.
{"business_id": "1SWheh84yJXfytovILXOAQ", "name": "Arizona Biltmore Golf Club", "address": "2818 E Camino Acequia Drive", "city": "Phoenix", "state": "AZ" "postal_code": "85016", "широта": 33,5221425, "долгота": - +112,0184807, "звезды": 3.0 "REVIEW_COUNT": 5, "is_open": 0, "атрибуты": { "GoodForKids":» False "}," category ":" Golf, Active Life "," hours ": ноль}
Код должен удалить все категории, не относящиеся к "ресторанам", после оператора if, но я не могу даже добраться до этой стадии.
выдает ошибку
TypeError Traceback (most recent call last)
<ipython-input-84-ac1362de4f26> in <module>()
11 business = json.loads(business_json)
12
---> 13 business[u"categories"] = filter(lambda a: a is not None, business[u"categories"])
14 # print business[u"categories"]
15
TypeError: 'NoneType' object is not iterable