TypeError: объект 'NoneType' не является подписями к словарю python

Код

import pandas as pd
import clearbit
import json
clearbit.key = 'sk_1915de5d2d7b6e245d6613e3d2188368'
df = pd.read_csv("/home/vipul/Desktop/new.csv", sep=',', encoding = "utf-8")

saved_column = df['Company']
print(saved_column)
i=0
NoneType = type(None)
for data in saved_column:   

    n = saved_column[i]
    i = i+1
    data = clearbit.NameToDomain.find(name=n)
    print(data)
    df['domain'][i] = data['domain']

df.to_csv("/home/vipul/Desktop/new.csv",index = False, skipinitialspace=False)

print("File saved to desktop as new.csv")

Как обработать объект типа none и сохранить какое-то значение по умолчанию в файле csv, соответствующем названию компании

new.csv:

Company
‎Accenture
‎AND Digital
‎Accenture
‎Kite Consulting Group
‎Capgemini
‎Accenture
‎Capgemini
‎Accenture UK
‎Accenture  

печать (данные)

Name: Company, dtype: object
{'domain': 'accenture.com', 'logo': 'https://logo.clearbit.com/accenture.com', 'name': 'Accenture'}
{'domain': 'and.digital', 'logo': 'https://logo.clearbit.com/and.digital', 'name': 'AND Digital'}
{'domain': 'accenture.com', 'logo': 'https://logo.clearbit.com/accenture.com', 'name': 'Accenture'}
None
{'domain': 'capgemini.com', 'logo': 'https://logo.clearbit.com/capgemini.com', 'name': 'Capgemini'}
{'domain': 'accenture.com', 'logo': 'https://logo.clearbit.com/accenture.com', 'name': 'Accenture'}
{'domain': 'capgemini.com', 'logo': 'https://logo.clearbit.com/capgemini.com', 'name': 'Capgemini'}
None
{'domain': 'accenture.com', 'logo': 'https://logo.clearbit.com/accenture.com', 'name': 'Accenture'}  

У этого нет типа, который дает ошибку типа

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
2 931
1

Ответы 1

Вы можете сначала сохранить data['domain'] в списке, а затем назначить его df

res = []
for data in saved_column:   

    n = saved_column[i]
    i = i+1
    data = clearbit.NameToDomain.find(name=n)
    if data:
        res.append(data.get('domain', None))

df['domain'] = res
df.to_csv("/home/vipul/Desktop/new.csv",index = False, skipinitialspace=False)

print("File saved to desktop as new.csv")
ошибкаres.append(data['domain']) TypeError: 'NoneType' object is not subscriptable
vipul-rao 13.03.2018 07:56

Похоже, ваша переменная данных пуста. Я обновил фрагмент, чтобы проверить это условие

Rakesh 13.03.2018 07:57

@Rakesh - На мой взгляд проблема с NaNs;)

jezrael 13.03.2018 07:58

нет ошибка все еще есть ошибка типаres.append(data.get('domain', None)) TypeError: get() takes 2 positional arguments but 3 were given

vipul-rao 13.03.2018 08:27

у нас есть блок попыток? вы пробовали код? могу я отправить вам файл csv?

vipul-rao 13.03.2018 08:28

Другие вопросы по теме