我有充滿用戶的意見(從網頁抓取)我已經被拉入蟒蛇與大熊貓Python3正則表達式不改變「爲」
import pandas as pd
data = pd.DataFrame(pd.read_json(filename, orient=columnName,encoding="utf-8"),columns=columnName)
data['full_text'] = data['full_text'].replace('^@ABC(\\u2019s)*[ ,\n]*', '', regex=True)
data['full_text'] = data['full_text'].replace('(\\u2019)', "'", regex=True)
data.to_json('new_abc_short.json',orient='records')
的消息並不完全匹配相應的JSON文件在線消息。 (emojis顯示爲\ u0234或其他東西,撇號爲\ u2019,鏈接中有正斜槓,並且引號有反斜槓。
我想清理它們,所以我學會了一些正則表達式,所以我可以拉進python,clean (https://docs.python.org/3/howto/regex.html)
第二行有助於刪除嘰嘰喳喳句柄(如果它只存在於開始),然後刪除它的,如果它是(如果它是)如果在開始時沒有twitter句柄(可能在消息的中間使用),那麼它會被保留,然後它將刪除所有留下的空格和逗號(再次僅在字符串) 例如「@ABC,hi there」變成「hi there」。「hi there @ABC」保持不變。 「@ ABC的Twitter是大」將成爲「Twitter是大」
第三行有助於替換無法顯示每一個單引號(如唐\ u2019t變回不)
我有上千條記錄(不是所有的人都用撇號,報價,鏈接等問題),以及基於非常小例子我看,他們似乎工作
,但我的第三個不工作:
data['full_text'] = data['full_text'].replace('\\"', '"', regex=True)
json中的示例消息:「full_text」:「@ ABC你怎麼能」意外關閉了\「我的帳戶」
我想刪除\旁邊的雙引號,所以它看起來像真正的信息(我假設它是用戶顯然沒有鍵入一個轉義字符)
但無論我做什麼,我都無法刪除它
從我的正則表達式學習,「不是一個元字符。所以反斜槓甚至不應該在那裏。但無論如何,我已經試過:
\\" (which i think should be the obvious one, i have \", no special quirk in " but there is in \ so i need another back slash to escape that)
\\\\" (some forums posts online mention needing 4 slashes
\\\" (i think someone mention in the forum posts that they got it workin with 3)
\\\(\") (i know that brackets provide groupings so i tried different combinations)
(\\\\")
上述所有表達我的單引號包裹,他們沒有工作。我想,也許雙引號是問題,因爲我只有一個,所以我取代了單引號用單引號X3
'''\\"'''
但沒有上述工作了三聯單引號或者
我一直複覈新保存的JSON和我總是看到:
「full_text」:「你怎麼可以\」不小心關閉了\「我的賬戶」 (即間隙除去@ABC工作,但不是反斜槓位)
最初,我三編輯調查轉換這些unicode問題,即使用encoding =「utf-8」)雖然我在這方面的經驗是有限的,它保持失敗,所以正則表達式是我最好的選擇
這樣做幾乎肯定是錯誤的方法。更好的辦法是找到額外的轉義級別,並使用相同的工具來避開字符串。 –
@DanielH如果通過工具,你是指什麼提供的數據,然後保存到json,那麼這將通過刮twitter?所以我想我無法從Twitter方面做任何事情? – user3120554
等等......當你說'print(data ['full_text'])'時,你會得到什麼? –