【问题标题】:Create a Python function out of a JS tree从 JS 树中创建 Python 函数
【发布时间】:2019-04-23 21:11:18
【问题描述】:

我需要从以下一堆代码中创建一个函数:

jsHelperFunctions = """
function getTreeList(treeId) {
            var $tree = $(treeId);
            var itemsList = [];
            var treeList = $($tree.jstree().get_json($tree, {
                            flat: true
            })).each(function(i, val) {
                            itemsList.push($tree.jstree().get_node(val.id))
            })

            return itemsList;
}

function getItemByItemCode(itemCode, itemsList) {
            return itemsList.filter(val => val.original.account_code == 
itemCode)[0]
}"""

这是我的主管给我的一行代码:

treeList = driver.execute_script(jsHelperFunctions + """ return 
getTreeList("#tree");""")

试过这样的东西,但我不确定(第一个功能):

def get_tree_list(treeId):
tree = treeId
itemsList = []
treeList = tree.jstree().get_json(tree, flat: true).each(function(i, val)
itemsList.push(tree.jstree().get_node(val.id))
return itemsList

还有关于 val 和 Py 中的 flat 是什么?

【问题讨论】:

  • 欢迎来到 StackOverflow。您能否向我们展示一些您尝试过的示例代码?
  • 似乎更像是一个为我做作业之类的问题。
  • 我尝试过类似的方法,但正如我所说,我对 Py 和 JS 作为编程语言并不十分熟悉。那应该是第一个函数?

标签: javascript python function jstree multilinestring


【解决方案1】:

找到解决方案。花了我几天...

def getTreeList(treeId):
return driver.execute_script(jsHelperFunctions + """ return getTreeList(\""""+ treeId 
+"\");")

treeList = getTreeList("#tree")

还有这个……

def getItemByCode(itemCode, treeList):
"""
    Returns None if the item code is not found
"""
filtered_iterable =  filter(lambda row : row["original"]["item_code"] == itemCode, 
treeList)
filtered_list = list(filtered_iterable)
if len(filtered_list)  == 0:
    return None     
assert(len(filtered_list) == 1) #item codes must be unique - so something's wrong 
return filtered_list[0]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2016-11-02
    • 2023-04-04
    • 2012-08-16
    相关资源
    最近更新 更多