nebula3-python INSERT VERTEX如何类似于动态SQL批量插入数据

嗯呢,感谢您的建议,这边使用拼接nsql封装了下方法,贴一下哈。

# 创建图空间nsql语句
def create_sql():
    create_sql = 'CREATE SPACE IF NOT EXISTS demo' \
                 '(partition_num = 10, replica_factor = 1, charset = utf8, collate = utf8_bin, vid_type = FIXED_STRING(32)); ' \
                 'USE demo; ' \
                 'CREATE TAG IF NOT EXISTS number();' \
                 'CREATE EDGE `relation` ( `beginTime` datetime NOT NULL) ttl_duration = 0, ttl_col = "";'
    return create_sql


# 插入node节点函数
def import_node(datas, client):
    values = []
    counter = 0

    for number in datas[0]:
        values.append(f"'{number.rstrip()}' : ()")
        counter += 1

        if counter == 20:
            values_str = ','.join(values)
            nsql_node = f'INSERT VERTEX number() VALUES {values_str};'
            resp = client.execute(nsql_node)

            # 重置计数器和值列表
            counter = 0
            values = []

    # 处理剩余不足 20 个的数据
    if counter > 0:
        values_str = ','.join(values)
        nsql_node = f'INSERT VERTEX number() VALUES {values_str};'
        resp = client.execute(nsql_node)
    return resp


# 插入edge数据
def import_edge(datas, client):
    values = []
    counter = 0

    # 关系边数据导入图空间
    for relation in datas[1]:
        relation = relation.rstrip().split('|')
        values.append(f"'{relation[0]}'-> '{relation[1]}':(datetime('{relation[2]}'))")
        counter += 1

        if counter == 20:
            values_str = ','.join(values)
            nsql_edge = f'INSERT EDGE relation(beginTime) VALUES  {values_str};'
            print(nsql_edge)
            resp = client.execute(nsql_edge)

            # 重置计数器和值列表
            counter = 0
            values = []

    # 处理剩余不足 20 个的数据
    if counter > 0:
        values_str = ','.join(values)
        nsql_edge = f'INSERT EDGE relation(beginTime) VALUES {values_str};'
        resp = client.execute(nsql_edge)
    return resp