我的网络查询语言

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第三方库


热门话题
java关闭应用程序按钮Listener   Java中的多线程同步在Java示例中的思考   java如何查看Tomcat正在使用/访问的JAR?   java My代码在调用垃圾收集器后不会终止   多线程Java连接线程池和connectionfactory?   java在运行时修改JAR文件   java Android:使用光标时引发IllegaleException   在Netbeans中测试不可执行库的java?   泛型在参数上强制子类Java类型   spring Java:继承与依赖注入“自动连线”   javascript如何解析这个xml元素   java打印特定序列中的数组   带有ProcessingTimeSessionWindow的java Apache Flink自定义触发器   java如何配置消息驱动的Bean应用程序和Glassfish来使用来自远程MessageBroker的消息?