将Python列表传递给函数,以插入json列表

时间:2018-09-04 21:23:24

标签: python

我正在将URL传递给过滤服务。我发布的json正文是:

body = {
    "url-filter": [
        "www.reddit.com",
        "www.cnn.com",
        "www.espn.com"
    ]
}

我想创建一个函数,使我可以传递一个或多个URL进行过滤。我不清楚的是:

1)如何将这些URL传递给函数-Python列表? URL不需要保留顺序/顺序。

2)如何将URL插入此json主体?

是否有一个函数可以执行此操作?还是需要其他功能?

2 个答案:

答案 0 :(得分:1)

您可以简单地执行以下操作:

<StackLayout
    x:Name="secondRow"
    Grid.Row="1">
    <Image x:Name="image1" />
    <Image x:Name="image2" />
    <Image x:Name="image3" />
</StackLayout>

MakeViewShot(secondRow);

如果要添加多个URL,请执行以下操作以添加URL列表:

body['url-filter'].append("www.myaddress.com")

答案 1 :(得分:1)

您在这里问两个问题,第一个是如何将URL传递给函数,第二个是如何向列表中添加另一个URL。

您显示的代码是带有一个单键url-filter的字典的有效python代码。因此,您可以将URL列表传递给像这样的python函数:

myfunction(body['url-filter'])

如果您实际上是说body是json编码的字符串,则可以像这样使用json.loads对该字符串进行解码

import json
decoded_body = json.loads(body)

,然后可以将其传递给函数。 如果要将另一个URL添加到URL列表中,则可以简单地通过`body ['url-filter']。append('www.new-url.com')追加该URL。如果body实际上是一个字符串,那么这会涉及更多的内容。您首先需要将该字符串解码为python对象,然后附加新的url,最后再次将所有内容编码为json。

def add_url(body, url):
    json_body = json.loads(body)
    json_body['url-filter'].append(url)
    return json.dumps(json_body)