Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python将rdf转换为xml_Python_Rdf - Fatal编程技术网

使用python将rdf转换为xml

使用python将rdf转换为xml,python,rdf,Python,Rdf,嗨,我有这个RDF输入,我想用python把它变成xml风格,现在我该怎么做 @prefix Person: <http://example.org/> . Person:Sophie Person:gender "women" ; Person:likes Person:Peter . Person:Frank Person:bornIn "1949" ; Person:gender "Men" ;

嗨,我有这个RDF输入,我想用python把它变成xml风格,现在我该怎么做

@prefix Person: <http://example.org/> .

Person:Sophie Person:gender "women" ;
    Person:likes Person:Peter .

Person:Frank Person:bornIn "1949" ;
    Person:gender "Men" ;
    Person:married Person:Susie .

Person:Peter Person:father Person:Frank ;
    Person:gender "Men" ;
    Person:likes Person:Sandra ;
    Person:mother Person:Susie .

Person:Sandra Person:bornIn "1980" ;
    Person:gender "women" .

Person:Susie Person:bornIn "1956" ;
    Person:gender "women" .



@前缀人物:。
人物:索菲人物:性别“女性”;
喜欢的人:彼得。
人物:弗兰克人物:博宁“1949”;
人:性别“男子”;
人:已婚者:苏茜。
人:彼得人:父亲人:弗兰克;
人:性别“男子”;
喜欢的人:桑德拉;
人:母亲人:苏西。
人物:桑德拉人物:博宁“1980”;
人:性别“妇女”。
人物:苏西人物:1956年出生;
人:性别“妇女”。

您可以安装
rdflib
包,并使用它在RDF格式之间进行转换。在您的例子中,数据似乎是以“notation3”语法存储的。要解析此内容,您需要在读取图形时指定格式为
'n3'

我使用
StringIO
来代替下面的实际文件,但概念是一样的

import rdflib
from io import StringIO, BytesIO

str_in = StringIO('''@prefix Person: <http://example.org/> .

Person:Sophie Person:gender "women" ;
    Person:likes Person:Peter .

Person:Frank Person:bornIn "1949" ;
    Person:gender "Men" ;
    Person:married Person:Susie .

Person:Peter Person:father Person:Frank ;
    Person:gender "Men" ;
    Person:likes Person:Sandra ;
    Person:mother Person:Susie .

Person:Sandra Person:bornIn "1980" ;
    Person:gender "women" .

Person:Susie Person:bornIn "1956" ;
    Person:gender "women" .'''
)

g = rdflib.Graph()
g.parse(str_in, format='n3')

使用并编写为
RDF/XML
-done。事实上,这个RDF/XML将包含所有RDF特定的元数据。添加到文件“C:\ProgramData\Anaconda3\lib\site packages\rdflib\plugin.py”,第103行,在get p=_plugins[(name,kind)]键错误:('RDF/XML',在处理上述异常期间,发生了另一个异常:。。。rdflib.plugin.PluginException:没有为(RDF/XML,)@UninformedUseredit my tagToXml.write(graph.serialize(format='turtle').decode('utf-8'))注册插件。write(graph.serialize(format='RDF/XML')。decode('utf-8'))生成运行时错误@UninformedUser
g.serialize('path/to/file.xml', format='pretty-xml')

with open('path/to/file.xml') as fp:
    print(fp.read())
# prints:
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:Person="http://example.org/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about="http://example.org/Sophie">
    <Person:likes>
      <rdf:Description rdf:about="http://example.org/Peter">
        <Person:gender>Men</Person:gender>
        <Person:likes rdf:resource="http://example.org/Sandra"/>
        <Person:father rdf:resource="http://example.org/Frank"/>
        <Person:mother rdf:resource="http://example.org/Susie"/>
      </rdf:Description>
    </Person:likes>
    <Person:gender>women</Person:gender>
  </rdf:Description>
  <rdf:Description rdf:about="http://example.org/Susie">
    <Person:gender>women</Person:gender>
    <Person:bornIn>1956</Person:bornIn>
  </rdf:Description>
  <rdf:Description rdf:about="http://example.org/Frank">
    <Person:married rdf:resource="http://example.org/Susie"/>
    <Person:bornIn>1949</Person:bornIn>
    <Person:gender>Men</Person:gender>
  </rdf:Description>
  <rdf:Description rdf:about="http://example.org/Sandra">
    <Person:bornIn>1980</Person:bornIn>
    <Person:gender>women</Person:gender>
  </rdf:Description>
</rdf:RDF>