我有一个行包含key = value的数据文件。我想从python读取此文件并将其转换为json对象,例如{"key"="value"}
。
数据文件:
a=b
c=d
所需结果:
{
"a": "b",
"c": "d"
}
我已使用以下代码成功完成此操作:
j = {}
with open('datafile') as f:
lines = f.readlines()
for line in lines:
s=line.strip().split('=')
j[s[0]]=s[1]
但是,由于是Python的新手,并且意识到通常可以针对此类大多数问题提供超短而优美的解决方案,所以我想知道是否确实存在针对该问题的更漂亮的单线解决方案?
python大神给出的解决方案
with open("myfile") as f:
d = dict(line.rstrip().split("=") for line in f)
除非您实际上想要一个列表,否则不要调用readlines
。您可以遍历文件对象。
您还可以使用生成器表达式并解压缩:
{k:v for k, v in (line.rstrip().split("=") for line in f)}