我有这个数组:
['clid=1 cid=174 client_database_id=246 client_nickname=Music\sBot client_type=0', 'clid=2 cid=181 client_database_id=247 client_nickname=xxx client_type=0', 'clid=5 cid=174 client_database_id=140 client_nickname=xxx client_type=0', 'clid=6 cid=174 client_database_id=158 client_nickname=xxx client_type=0', 'clid=7 cid=174 client_database_id=218 client_nickname=xxx client_type=0', 'clid=11 cid=174 client_database_id=202 client_nickname=xxx client_type=0']
我想转换成类似的东西
[{"clid": 1,
"cid": 174,
"client_database_id": 246,
"client_nickname": "Music\sBot"
"client_type":0},
{"clid": 2,
"cid": 181,
"client_database_id": 247,
"client_nickname": "xxx"
"client_type":0}, {...}
最好的方法是什么?
您可以使用列表理解,按空格拆分每个项,按=
拆分每个对,并将对传递给dict()
构造函数以创建字典:
In [2]: processed_list = [dict(pair.split('=') for pair in item.split(' '))
for item in your_list]
In[3]: processed_list
Out[3]:
[{'cid': '174',
'clid': '1',
'client_database_id': '246',
'client_nickname': 'Music\sBot',
'client_type': '0'},
...
{'cid': '174',
'clid': '11',
'client_database_id': '202',
'client_nickname': 'xxx',
'client_type': '0'}]
其中your_list
是您的列表。
如果您想进一步将id和client_type转换为整数,可以有多种方法来实现这一点-例如,我们可以将以id
或type
:结尾的密钥转换为int()
条目
processed_list = [{key: (int(value) if key.endswith(('id', 'type')) else value)
for key, value in entry.items()}
for entry in processed_list]