簡體   English   中英

在python中使用子列表拆分字符串

[英]Split string with sublist in python

我有這個字符串:

"{'osFreeMem': 286494720, 'osUpTime': 19230718, 'sysload': [0.24609375, 0.62109375, 0.734375], 'nodeUpTime': 1831, 'osTotMem': 536870912, 'nodeMemory': {'heapTotal': 8766304, 'heapUsed': 7789588, 'rss': 22773760}}"

我想要一個包含這些值的字典:

'osFreeMem': 286494720
'osUpTime': 19230718
'sysload': [0.24609375, 0.62109375, 0.734375]    
'nodeUpTime': 1831
'osTotMem': 536870912    
'nodeMemory': {'heapTotal': 8766304, 'heapUsed': 7789588, 'rss': 22773760}

我怎么能得到這份清單?

In [37]: s = "{'osFreeMem': 286494720, 'osUpTime': 19230718, 'sysload': [0.24609375, 0.62109375, 0.734375], 'nodeUpTime': 1831, 'osTotMem': 536870912, 'nodeMemory': {'heapTotal': 8766304, 'heapUsed': 7789588, 'rss': 22773760}}"

In [38]: import ast

In [39]: d = ast.literal_eval(s)

In [40]: d
Out[40]: 
{'nodeMemory': {'heapTotal': 8766304, 'heapUsed': 7789588, 'rss': 22773760},
 'nodeUpTime': 1831,
 'osFreeMem': 286494720,
 'osTotMem': 536870912,
 'osUpTime': 19230718,
 'sysload': [0.24609375, 0.62109375, 0.734375]}

In [41]: d.items()
Out[41]: 
[('osFreeMem', 286494720),
 ('osUpTime', 19230718),
 ('sysload', [0.24609375, 0.62109375, 0.734375]),
 ('nodeUpTime', 1831),
 ('osTotMem', 536870912),
 ('nodeMemory', {'heapTotal': 8766304, 'heapUsed': 7789588, 'rss': 22773760})]

要么

In [44]: import json

In [45]: json.loads(s.replace("'",'"')).items()
Out[45]: 
[(u'osFreeMem', 286494720),
 (u'osUpTime', 19230718),
 (u'sysload', [0.24609375, 0.62109375, 0.734375]),
 (u'nodeUpTime', 1831),
 (u'osTotMem', 536870912),
 (u'nodeMemory', {u'heapTotal': 8766304, u'heapUsed': 7789588, u'rss': 22773760})]

您還可以使用內置函數eval

>>>d = eval("{'osFreeMem': 286494720, 'osUpTime': 19230718, 'sysload': [0.24609375, 0.62109375, 0.734375], 'nodeUpTime': 1831, 'osTotMem': 536870912, 'nodeMemory': {'heapTotal': 8766304, 'heapUsed': 7789588, 'rss': 22773760}}")
>>>d
{'osFreeMem': 286494720, 'osUpTime': 19230718, 'sysload': [0.24609375, 0.62109375, 0.734375], nodeUpTime': 1831, 'osTotMem': 536870912, 'nodeMemory': {'heapTotal': 8766304, 'heapUsed': 7789588, 'rss': 22773760}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM