我正在尝试使用来自某个聊天的所有我自己的 Telegram 消息来清理 json 文件,在那里我收到了机器人的通知。尽管应用程序中的消息非常干净,但在 json 文件中它们变得有点混乱。例如,下面的单行电报消息...
Xparty P-Q D-21-01-30-20-12 (USDT_UNI): deal_284174394: Base order executed.
Price: 21.03739122 USDT. Size: 127.06584296 USDT (6.04 UNI)
在json文件中变成:
['Xparty P-Q D-', {'type': 'phone', 'text': '21-01-30-20-12'}, ' (USDT_UNI): deal_284174394:
Base order executed. Price: 21.03739122 USDT. Size: 127.06584296 USDT (6.04 UNI)']
所以我试图清理 json 文件中的消息以便能够使用它们。由于所有噪音都遵循某些模式,我试图将模式添加到列表中,然后像这样替换它们:
noise = [", {'type': 'phone', 'text': ", ", {'type': 'hashtag', 'text': ", "[", "]", "}, "]
df["messages"].str.replace('|'.join(noise), '', regex=False)
但我的第一个问题是,事实上一些噪音的发生是因为一些这样的消息被记录为 LISTS,其他的被记录为 DICTS,只有一些是字符串。所以我相信我必须首先将所有内容都转换为字符串。
我希望一个简单的df['messages'].apply(' '.join)
方法可以解决问题,但由于并非所有条目都是 LISTS,因此它不起作用。
所以我的问题是:鉴于系列中有不同的数据类型,我如何将某个系列中的所有 Lists 和 Dicts 转换为字符串?(希望不必依赖循环!)
这应该可以解决问题:
import json
df['messages'] = df['messages'].apply(lambda x: json.dumps(x))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句