如何从common lisp中的文件加载propertylist?

如何从common lisp中的文件加载propertylist?,lisp,common-lisp,Lisp,Common Lisp,我有一个包含属性列表的文本文件。内容如下所示。如何将其加载到属性列表中 ((:NOMBREMATERIA "LENGUAJES DE PROGRAMACIÓN" :IDMATERIA "FIEC01552" :CLASES NIL :NOTAPROYECTOS NIL :HORASSEMESTRE "40" :NOTAEXAMENES NIL :NOTATAREAS NIL :CONTRIBUCION_TAREAS 0.1 :CONTRIBUCION_NOTAPROYECT

我有一个包含属性列表的文本文件。内容如下所示。如何将其加载到属性列表中

((:NOMBREMATERIA "LENGUAJES DE PROGRAMACIÓN" :IDMATERIA   "FIEC01552"
  :CLASES NIL :NOTAPROYECTOS NIL   :HORASSEMESTRE "40" :NOTAEXAMENES NIL 
  :NOTATAREAS NIL   :CONTRIBUCION_TAREAS 0.1 :CONTRIBUCION_NOTAPROYECTO 0.5   
  :CONTRIBUCION_NOTAEXAMEN 0.4)
 (:NOMBREMATERIA "HERRAMIENTAS DE COLABORACION DIGITAL" :IDMATERIA "FIEC06460"
  :CLASES NIL :NOTAPROYECTOS NIL   :HORASSEMESTRE "40" :NOTAEXAMENES NIL
  :NOTATAREAS NIL   :CONTRIBUCION_TAREAS 0.1 :CONTRIBUCION_NOTAPROYECTO 0.5
  :CONTRIBUCION_NOTAEXAMEN 0.4))

打开文件并读取数据:

(with-open-file (f "file.txt")
  (read f))

您向我们展示的内容实际上是一个属性列表列表,而不是单个属性列表。您是在尝试读取属性列表,还是只是其中的一个列表?无论如何,我已经知道如何读取它了。在外部输入上使用
read
时,您通常应该将
*read eval*
绑定到
nil
。否则,攻击者可以通过
#.
()读取器宏注入内容。