处理结构化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”属性、资源级别或关系级别元。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java正在寻找Java8中的内置函数以忽略异常   javascript JQuery更改Div的颜色   java PostgreSQL使用JDBC写入inet列   java为什么体重指数计算结果不正确?   java禁用linux中的log4j控制台日志记录   java我可以让我的JMS主题在新订阅者连接时通知发布者(使用ActiveMQ)   基于三个浮点输入的java过滤器JTable?   Java OpenGL/LWJGL体素纹理   在SpringBoot java应用程序中,有没有一种方法可以通过不同的机器使用hostIP作为主机远程连接到redis服务器   java Struts 2 s:提交按钮语法以在映射中设置值   java源代码:setDomainEnv。windows 7中的cmd文件   缺少货币计算java的返回语句   JavaHibernate没有注意到从其他源进行的数据库更新   无法在OpenCV/Java中生成负矩阵   Java不做循环   java无法使用类对象写入文件ArrayList   jpa使用数组作为调用Java的存储过程的输入   java使用文件提供程序检索内容Uri失败   需要java程序来创建方法模板