我的网络查询语言

MyNQL的Python项目详细描述


安装

mynlq的源代码托管在GitHub

git clone https://github.com/livinter/MyNQL.git
python setup.py install

或者只是

pip install MyNQL

设定网络

例如,如果一个客户购买了一个产品,则假设customer.idproduct.id之间存在关系, 所以你把他们联系起来。可选您可以指定节点之间的距离,以表示节点之间的关联程度。

  • connect-连接两个节点
  • delete-删除连接

节点在进行连接时自动创建,如果它们没有更多的连接,则会将其删除。所以不要担心他们。

询问网络

现在你可以查询各种关系,而不仅仅是你曾经教过的。使用select指定一个起点,如 customer.id并指定要知道其关闭关系的类别。

  • select-为您提供指定类别中最好的相关节点

搜索查询会考虑您指定半径范围内的所有不同路由。

示例

假设我们已经有一个表customer

IdName
101jose
102maria
103juan

你还想教网络关于最近购买的东西。

fromMyNQLimportMyNQLmynql=MyNQL('store')mynql.connect('customer.juan','product.jeans')mynql.connect('customer.juan','product.socks')mynql.connect('customer.maria','product.socks')

如果列Name是唯一的,您可以将其用作键,否则您将需要列Id,并且您的代码如下:

mynql.connect("customer.103', 'product.12')

现在你可以从其他角度提问了。您总是指定一个起点,以及要知道最佳匹配的类别:

>>>mynql.select('customer.maria','product')['socks','jeans']

玛丽亚与^ {Tt9} $更紧密地联系在一起,因为她有直接连接,但也有一点到^ {TT10}$,因为通过胡安存在间接连接。

>>>mynql.select('product.jeans','product')['socks']

任何组合都有效。例如,您可以询问一种产品与另一种产品的关系。

后端

存储是在内存中完成的,但是如果您想使用mysql、sqlite或postgresql作为后端,请查看test/pee_example.py。 这将在数据库中保留所有更新的副本。

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

推荐PyPI第三方库


热门话题
mapDb Java中的序列化序列化和反序列化对象   java Android Studio SearchView图标未出现   java如何在应用程序中集成广告   java如何在startActivityForResult()之前启动startActivity()   java创建DelegateForest并按预定顺序显示   特定url的java筛选器映射   面向对象Java继承:需要多个扩展   我怎样才能避免java。sql。I/O错误导致SQLException:连接重置?   Scala中的java多维数组   java Ifless代码:这只是一个智力上的挑战,还是实际有用?   java为什么我的@override for contains不起作用?   java Hazelcast文件从客户端上载到服务器   java按水平顺序展开单元格?   java从另一个DAO工厂调用一个DAO   java中的日期格式DateFormat提供意外结果   2d如何在java窗口上显示48X48像素的12X12网格图像   使用iText 5提取图像时出现java错误:“颜色空间不受支持”   java如何在Intellij方法中用参数重构为带字段的类