繁体   English   中英

在Python中将多行字符串转换为Dict

[英]Converting multi-line String to Dict in Python

我有一个从csv文件中提取的多行字符串,并且正在尝试将其转换为字典。 我已经在下面编写了我想使用的代码,但是不知道如何进行开发。

scsv = '''coupon,    months_to_maturity,    FACE_VALUE,
                0.3758,    12,    100,
                0.7287,    24,    100,
                1.0894,    36,    100,
                1.4019,    48,    100,
                1.6542,    60,    100,
                1.8512,    72,    100,
                2.0034,    84,   100,
                2.1213,    96,    100,
                2.2141,    108,    100,
                2.2891,    120,    100,
                2.3516,    132,    100,
                2.4058,    144,    100,
                2.4543,    156,    100,
                2.4994,    168,    100,
                2.5423,    180,    100,
                2.5841,    192,    100,
                2.6253,    204,    100,
                2.6664,    216,    100,
                2.7076,    228,    100,
                2.7491,    240,    100,
                2.7908,    252,    100,
                2.8328,    264,    100,
                2.8751,    276,    100,
                2.9175,    288,    100,
                2.9601,    300,    100,
                3.0026,    312,    100,
                3.0451,    324,    100,
                3.0875,    336,    100,
                3.1296,    348,    100,
                3.1714,    360,    100,
             '''
f = StringIO(scsv)
reader = csv.reader(f, delimiter=',')
for row in reader:
    #Dont know what should go here

谢谢

您可以执行以下操作:

import os
import csv
from StringIO import StringIO

scsv = """coupon,    months_to_maturity,    FACE_VALUE,
                0.3758,    12,    100,
                0.7287,    24,    100,
                1.0894,    36,    100,
                1.4019,    48,    100,
                1.6542,    60,    100,
                1.8512,    72,    100,
                2.0034,    84,    100,
                2.1213,    96,    100,
                2.2141,    108,    100,
                2.2891,    120,    100,
                2.3516,    132,    100,
             """

scsv = scsv.replace(' ','')  #remove white spaces
scsv = scsv.replace(',' + os.linesep, os.linesep) #remove commas at the end of the lines

f = StringIO(scsv)
reader = csv.DictReader(f, delimiter=',')
rows = [row for row in reader]

print rows[0]
# {'coupon': '0.3758', 'months_to_maturity': '12', 'FACE_VALUE': '100'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM