您可以使用re.findall 和一个小的正则表达式:
作为数据框
string = '[2021-10-17 06:52:00 +0000: -47, 2021-10-17 06:52:04 +0000: -50, 2021-10-17 06:52:03 +0000: -50, 2021-10-17 06:52:02 +0000: -47, 2021-10-17 06:52:08 +0000: -46, 2021-10-17 06:51:57 +0000: -50, 2021-10-17 06:52:09 +0000: -48, 2021-10-17 06:52:05 +0000: -49, 2021-10-17 06:52:01 +0000: -48, 2021-10-17 06:51:58 +0000: -50, 2021-10-17 06:51:59 +0000: -50, 2021-10-17 06:52:06 +0000: -47, 2021-10-17 06:52:07 +0000: -48]'
import re
import pandas as pd
df = (pd.DataFrame.from_records(re.findall('([^,]+): (-?\d+)(?:, )?', string[1:-1]),
columns=['Date', 'RSSI'])
.astype({'Date': 'datetime64', 'RSSI': 'int'})
)
输出:
Date RSSI
0 2021-10-17 06:52:00 +0000 -47
1 2021-10-17 06:52:04 +0000 -50
2 2021-10-17 06:52:03 +0000 -50
3 2021-10-17 06:52:02 +0000 -47
4 2021-10-17 06:52:08 +0000 -46
5 2021-10-17 06:51:57 +0000 -50
6 2021-10-17 06:52:09 +0000 -48
7 2021-10-17 06:52:05 +0000 -49
8 2021-10-17 06:52:01 +0000 -48
9 2021-10-17 06:51:58 +0000 -50
10 2021-10-17 06:51:59 +0000 -50
11 2021-10-17 06:52:06 +0000 -47
12 2021-10-17 06:52:07 +0000 -48
作为字典
import re
dict(re.findall('([^,]+): (-?\d+)(?:, )?', string[1:-1]))
输出:
{'2021-10-17 06:52:00 +0000': '-47',
'2021-10-17 06:52:04 +0000': '-50',
'2021-10-17 06:52:03 +0000': '-50',
'2021-10-17 06:52:02 +0000': '-47',
'2021-10-17 06:52:08 +0000': '-46',
'2021-10-17 06:51:57 +0000': '-50',
'2021-10-17 06:52:09 +0000': '-48',
'2021-10-17 06:52:05 +0000': '-49',
'2021-10-17 06:52:01 +0000': '-48',
'2021-10-17 06:51:58 +0000': '-50',
'2021-10-17 06:51:59 +0000': '-50',
'2021-10-17 06:52:06 +0000': '-47',
'2021-10-17 06:52:07 +0000': '-48'}
作为具有正确类型的字典:
import re
import pandas as pd
{pd.to_datetime(k): int(v)
for k,v in re.findall('([^,]+): (-?\d+)(?:, )?', string[1:-1])}
输出:
{Timestamp('2021-10-17 06:52:00+0000', tz='UTC'): -47,
Timestamp('2021-10-17 06:52:04+0000', tz='UTC'): -50,
Timestamp('2021-10-17 06:52:03+0000', tz='UTC'): -50,
Timestamp('2021-10-17 06:52:02+0000', tz='UTC'): -47,
Timestamp('2021-10-17 06:52:08+0000', tz='UTC'): -46,
Timestamp('2021-10-17 06:51:57+0000', tz='UTC'): -50,
Timestamp('2021-10-17 06:52:09+0000', tz='UTC'): -48,
Timestamp('2021-10-17 06:52:05+0000', tz='UTC'): -49,
Timestamp('2021-10-17 06:52:01+0000', tz='UTC'): -48,
Timestamp('2021-10-17 06:51:58+0000', tz='UTC'): -50,
Timestamp('2021-10-17 06:51:59+0000', tz='UTC'): -50,
Timestamp('2021-10-17 06:52:06+0000', tz='UTC'): -47,
Timestamp('2021-10-17 06:52:07+0000', tz='UTC'): -48}