数组中有多行

时间:2018-10-09 14:06:24

标签: sql python-3.x postgresql psycopg2

我有这个脚本

for row in c:
    res = subprocess.Popen('bgpq3 -4 {} -m 24 -l {}'.format(row[5],row[2]), shell=True, universal_newlines=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    stdout, stderr = res.communicate()
    for line in stdout.split('\n')[1:10]:
          print(line)

结果:

ip prefix-list 2603 permit 2.16.6.0/23
ip prefix-list 2603 permit 2.16.8.0/24
ip prefix-list 2603 permit 2.16.9.0/24
ip prefix-list 2603 permit 2.16.10.0/24

如何将这些列表放入一个数组? 这样的事情或更好的方法会更容易!

{ip prefix-list 2603 permit 2.16.10.0/24,ip prefix-list 2603 permit 2.16.8.0/24,ip prefix-list 2603 permit 2.16.9.0/24,ip prefix-list 2603 permit 2.16.10.0/24}

还有我下次如何查询它们?就像获取多行的相反方法!

我使用了它,但是得到了多个带有多个数组的行

cursor.execute("INSERT INTO newpeers (prefix) VALUES(ARRAY['{}'])ON CONFLICT DO NOTHING".format(line))

1 个答案:

答案 0 :(得分:0)

我希望我能正确理解问题。 首先,我们需要像 lines

这样的python列表
for row in c:
    res = subprocess.Popen('bgpq3 -4 {} -m 24 -l {}'.format(row[5],row[2]), shell=True, universal_newlines=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    stdout, stderr = res.communicate()
    lines = []
    for line in stdout.split('\n')[1:10]:
        print(line)
        lines.append(line)

插入时我们使用;

cur.execute("INSERT INTO newpeers (prefix) VALUES (%s)", (lines,))