Объект 'tuple' не имеет атрибута 'setswith' при извлечении первой и последней цитаты из строки в pandas - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь избавиться от одинарных кавычек вокруг вложенных словарей в pandas фрейме данных (первый элемент и последний элемент объекта). Я перебираю каждую строку в столбце метаданных.

Ниже приведен пример вложенного словаря, который скрыт внутри кавычек:

'{"dek": "<p>Don\'t forget to buy a card</p>", "links": {"edit": {"dev": "//patty-menshealth.feature.hearstapps.net/en/content/edit/76517422-96ad-4b5c-a24a-c080c58bce0c", "prod": "//patty-menshealth.prod.com/en/content/edit/76517422-96ad-4b5c-a24a-c080c58bce0c"}}}'

Я попробовал следующее:

def string_format(df):
    for text in df.iteritems():
        if text.startswith("'") and text.endswith("'"):
            text = text[1:-1]
            return text

string_format(df["metadata"])

Возвращает AttributeError: объект 'tuple' не имеет атрибута 'setswith'

1 Ответ

0 голосов
/ 10 февраля 2020

Вы используете pandas .Series.iteritems , которые фактически перебирают кортежи (индекс, значение). Поэтому, чтобы ваш код работал, вы должны попытаться изменить свой l oop следующим образом:

for label, text in df.iteritems():
    # process text

Но я предлагаю вам проверить pandas документацию по работе с текстом . Например, вы можете индексировать вашу серию напрямую через .str accessor .

...