Skip to main content
 首页 » 编程设计

python之将非标准符号转换为列表

2025年05月04日14insus

我有以下一行数据

15 0 42 50 "some text" "" 4 4 "text" 

我想将它转换成字典并为其分配特定名称:

{ 
    'data1': 15, 
    'data2': 0, 
    'data3': 42, 
    'data4': 50, 
    'data5': 'some text', 
    'data6': '', 
    'data7': 4, 
    'data8': 4, 
    'data9': 'text', 
} 

我如何在 Python 中做到这一点?请注意双引号,有时值是空的 (""),但即使字段应该存在于输出字典中。

请您参考如下方法:

您所拥有的基本上只是以空格分隔的 csv 数据,因此您可以使用 csv module解析它:

data = '15 0 42 50 "some text" "" 4 4 "text"' 
 
import csv 
import io 
 
file = io.StringIO(data)  # use io.BytesIO in python 2 
reader = csv.reader(file, delimiter=' ') 
split_data = next(reader) 
parsed_data = [int(x) if x.isdigit() else x for x in split_data] 
 
# result: [15, 0, 42, 50, 'some text', '', 4, 4, 'text'] 

如果你真的需要数据作为字典,你可以使用下面的字典理解:

>>> {'data{}'.format(i): x for i, x in enumerate(parsed_data, 1)} 
{'data1': 15, 'data2': 0, 'data3': 42, 'data4': 50, 'data5': 'some text', 'data6': '', 'data7': 4, 'data8': 4, 'data9': 'text'}