处理结构化jsonapi响应的轻量级库。
jsonapi-datastore的Python项目详细描述
#python json api数据存储
客户端[json api](http://jsonapi.org)数据处理变得简单。这是对lucas hosseini为python编写的[javascript jsonapi数据存储](https://github.com/beauby/jsonapi-datastore/)的重新编写。序列化尚未包括在内。如果您需要,可以随意打开一个pr或请求它。
[jsonapi](http://jsonapi.org)客户端的数据。
您设计端点url,处理身份验证、缓存等的方式完全取决于您。
存储区的。
``python
store=jsonapidatastore()
store.sync(data)
````
这将解析数据并将其合并到存储区中,注意已经存在的记录(通过更新它们)和关系。< B/> >解析元数据。BR/> BR/>如果您的有效载荷中有元数据,则使用存储的'.SycSouthMeta '方法。
` Python < BR/>存储= JSONAPIDATASORE():SycCouthMeta(数据)
` BR/>。具有数据和元拆分的对象。
属性*和*关系可以通过模型作为对象属性来访问。
``python
print(article.author.name)
````
如果尚未获取相关资源(作为主资源或作为包含的资源),模型上的相应属性将只包含“type”和“id”(并且“.u placeholder”属性将设置为“true”)。但是,这些模型是*就地更新的*,因此您可以稍后获取相关资源,并且您的数据将保持一致。
\examples
``python
\create a store:
store=jsonapidatastore()
\有一个相关的“用户”,他是两个文件的作者:
有效载荷={
“数据”:[{
“类型”:“文章”,
“id”:1337,
“属性”:{
“标题”:“酷文章”
},
“关系”:{
“作者”:{
“数据”:{
“类型”:“用户”,
“id”:1
}
}
}
}
},
{
“type”:“article”,
“id”:300,
“attributes”:{
“title”:“even cooler article”
},
“relationships”:{
“author”:{
“data”:{
“type”:“user”,
'id:1
>
>
>
>
>
;我们可以同步它:
articles=store.sync(payload)
;,它将返回已同步项目的列表。
;稍后,我们可以检索其中一个:
articles=store.store.find('article',1337'article',
;如果作者资源尚未同步,则我们可以同步它:
articles=store store.sync(payload)
//;
是的仅访问其ID及其类型:
print(article.author)
{id:1,''u type:'article'}
'属性':{
'名称':'lucas'
}
}
}
存储区不处理“links”属性、资源级别或关系级别元。
客户端[json api](http://jsonapi.org)数据处理变得简单。这是对lucas hosseini为python编写的[javascript jsonapi数据存储](https://github.com/beauby/jsonapi-datastore/)的重新编写。序列化尚未包括在内。如果您需要,可以随意打开一个pr或请求它。
[jsonapi](http://jsonapi.org)客户端的数据。
您设计端点url,处理身份验证、缓存等的方式完全取决于您。
存储区的。
``python
store=jsonapidatastore()
store.sync(data)
````
这将解析数据并将其合并到存储区中,注意已经存在的记录(通过更新它们)和关系。< B/> >解析元数据。BR/> BR/>如果您的有效载荷中有元数据,则使用存储的'.SycSouthMeta '方法。
` Python < BR/>存储= JSONAPIDATASORE():SycCouthMeta(数据)
` BR/>。具有数据和元拆分的对象。
属性*和*关系可以通过模型作为对象属性来访问。
``python
print(article.author.name)
````
如果尚未获取相关资源(作为主资源或作为包含的资源),模型上的相应属性将只包含“type”和“id”(并且“.u placeholder”属性将设置为“true”)。但是,这些模型是*就地更新的*,因此您可以稍后获取相关资源,并且您的数据将保持一致。
\examples
``python
\create a store:
store=jsonapidatastore()
\有一个相关的“用户”,他是两个文件的作者:
有效载荷={
“数据”:[{
“类型”:“文章”,
“id”:1337,
“属性”:{
“标题”:“酷文章”
},
“关系”:{
“作者”:{
“数据”:{
“类型”:“用户”,
“id”:1
}
}
}
}
},
{
“type”:“article”,
“id”:300,
“attributes”:{
“title”:“even cooler article”
},
“relationships”:{
“author”:{
“data”:{
“type”:“user”,
'id:1
>
>
>
>
>
;我们可以同步它:
articles=store.sync(payload)
;,它将返回已同步项目的列表。
;稍后,我们可以检索其中一个:
articles=store.store.find('article',1337'article',
;如果作者资源尚未同步,则我们可以同步它:
articles=store store.sync(payload)
//;
是的仅访问其ID及其类型:
print(article.author)
{id:1,''u type:'article'}
'属性':{
'名称':'lucas'
}
}
}
存储区不处理“links”属性、资源级别或关系级别元。