问题是阅读文本文件并返回如下字典。
这是文本文件
USER fjeen
NAME
Filcon Jeen
EMAIL filcon.jeen@clasic.edu.tr
PHONE 123-234-3333
这应该是回归
{'fjeen':['Filcon jeen', 'filcon.jeen@clasic.edu.tr','123-234-3333']
这是我尝试过但似乎没有用的。
def read():
with open("profiles.txt","r") as text:
return dict(line.strip().split() for line in text)
这是错误:
Traceback (most recent call last):
文件" C:\ Program Files(x86)\ Wing IDE 101 5.1 \ src \ debug \ tserver_sandbox.py",第1行,in #在内部用于外部解释器下的调试沙箱 文件" C:\ Program Files(x86)\ Wing IDE 101 5.1 \ src \ debug \ tserver_sandbox.py",第3行,读取 通过 builtins.ValueError:字典更新序列元素#0的长度为1; 2是必需的
答案 0 :(得分:0)
如果您的文件是对象的实际Python表示,则应使用ast.literal_eval。
安全地评估表达式节点或Unicode或Latin-1编码 包含Python文字或容器显示的字符串。字符串或 提供的节点可能只包含以下Python文字 结构:字符串,数字,元组,列表,dicts,布尔值和 无。
import ast
with open("profiles.txt") as f:
loaded = ast.literal_eval(f.read())
如果您的文件是JSON编码对象,则应使用json.load。
反序列化fp(.read() - 支持包含文件的文件对象 JSON文档)使用此转换表的Python对象。
import json
with open("profiles.txt","r") as f:
loaded = json.load(f)