从包含Python中特殊字符的CSV单元格中提取字符串

2024-10-03 02:43:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个Python程序,从.CSV文件列中的每个单元格中提取特定值,然后将所有提取的值都设为新列。在

示例列单元格:(这实际上是一小部分,实际单元格包含更多数据)

AudioStreams":[{"JitterInterArrival":10,"JitterInterArrivalMax":24,"PacketLossRate":0.01353227,"PacketLossRateMax":0.09027778,"BurstDensity":null,"BurstDuration":null,"BurstGapDensity":null,"BurstGapDuration":null,"BandwidthEst":25245423,"RoundTrip":520,"RoundTripMax":11099,"PacketUtilization":2843,"RatioConcealedSamplesAvg":0.02746676,"ConcealedRatioMax":0.01598402,"PayloadDescription":"SIREN","AudioSampleRate":16000,"AudioFECUsed":true,"SendListenMOS":null,"OverallAvgNetworkMOS":3.487248,"DegradationAvg":0.2727518,"DegradationMax":0.2727518,"NetworkJitterAvg":253.0633,"NetworkJitterMax":1149.659,"JitterBufferSizeAvg":220,"JitterBufferSizeMax":1211,"PossibleDataMissing":false,"StreamDirection":"FROM-to-

我试图提取的一个值是"JitterInterArrival":和{}之间的数字10。但由于每个细胞都包含相对较长的字符串和特殊字符(如“”),因此opener=re.escape(r"***")和{}将无法工作。在

有人知道更好的解决办法吗?谢谢!在


Tags: 文件csv数据程序示例nullaudiostreamsjitterinterarrivalmax
1条回答
网友
1楼 · 发布于 2024-10-03 02:43:26

IIUC,您有一个json字符串,并希望从其属性中获取值。所以,给定

s = '''
{"AudioStreams":[{"JitterInterArrival":10,"JitterInterArrivalMax":24,"PacketLossRate":0.01353227,"PacketLossRateMax":0.09027778,"BurstDensity":null,
                  "BurstDuration":null,"BurstGapDensity":null,"BurstGapDuration":null,"BandwidthEst":25245423,"RoundTrip":520,"RoundTripMax":11099,"PacketUtilization":2843,"RatioConcealedSamplesAvg":0.02746676,"ConcealedRatioMax":0.01598402,"PayloadDescription":"SIREN","AudioSampleRate":16000,"AudioFECUsed":true,"SendListenMOS":null,"OverallAvgNetworkMOS":3.487248,"DegradationAvg":0.2727518,
                  "DegradationMax":0.2727518,"NetworkJitterAvg":253.0633,
                  "NetworkJitterMax":1149.659,"JitterBufferSizeAvg":220,"JitterBufferSizeMax":1211,
                  "PossibleDataMissing":false}]}
'''

你能做到的

^{pr2}$

在数据帧场景中,如果有一列col的字符串,例如

df = pd.DataFrame({"col": [s]})

您可以使用transform传递json.loads作为参数

^{4}$

得到一个Series的字典。然后,您可以操作这些dicts,或者像上面那样访问数据。在

相关问题 更多 >