Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 在混合数据类型的系列中,如何将临时列表和dict转换为字符串?_Json_Python 3.x_Pandas - Fatal编程技术网

Json 在混合数据类型的系列中,如何将临时列表和dict转换为字符串?

Json 在混合数据类型的系列中,如何将临时列表和dict转换为字符串?,json,python-3.x,pandas,Json,Python 3.x,Pandas,我正试图清理一个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文件中,将

我正试图清理一个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)
但我的第一个问题是,事实上,有些噪音是因为一些这样的消息被记录为列表,另一些记录为dict,只有一些是字符串。所以我相信我必须先把所有的东西都转换成字符串

我希望一个简单的
df['messages'].apply('''.join)
就可以做到这一点,但是由于不是所有条目都是列表,所以它不起作用


所以我的问题是:如果序列中有不同的数据类型,如何将某个序列中的所有列表和dict转换为字符串?(希望不必依赖循环!)

这应该可以做到:

import json
df['messages'] = df['messages'].apply(lambda x: json.dumps(x))

df['messages']
是否包含原始形式的json数据
['Xparty P-Q D-',{'type':'phone','text':'21-01-30-20-12'}'(USDT_UNI):deal_284174394:执行的基本订单。价格:21.03739122 USDT。大小:127.06584296 USDT(6.04 UNI)
?有时是,有时只是一个字符串,例如'GridBot(USDT_XRP)':bot_32000:bot已打开“”。