我正在运行一个脚本来从URL获取信息,然后创建一个Json文件。这样,我将仔细阅读信息,保存所需信息,然后将其插入数据库。 但是,我对此信息的一部分有疑问。
URL中的信息,保存为JSON
"images": [
{
"type": "PosterPortrait",
"url": "https://ingresso-a.akamaihd.net/img/cinema/cartaz/22455-cartaz.jpg"
},
{
"type": "PosterHorizontal",
"url": "https://ingresso-a.akamaihd.net/img/cinema/cartaz/22455-destaque.jpg"
}
],
"trailers": []
这是我必须要做的一部分,
我编写了一个代码来做到这一点,问题是,我是python的新手,我不认为它可以正常工作。
insert-events.py
if(i['trailers'][0]):
a = array.arr(
array.arr('url' = i['images'][0]['url'], 'type' = i['images'][0]['type']),
array.arr('url' = i['images'][1]['url'], 'type' = i['images'][1]['type']),
array.arr('url' = i['trailers'][0]['url'], 'type' = Trailer),
array.arr('url' = i['trailers'][1]['url'], 'type' = Trailer),
)
else:
a = array.arr(
array.arr('url' = i['images'][0]['url'], 'type' = i['images'][0]['type']),
array.arr('url' = i['images'][1]['url'], 'type' = i['images'][1]['type']),
)
这是代码的一部分,可从JSON获取信息,然后将其保存为数组数组。
错误
File "insert-events.py", line 46
array.arr('url' = i['images'][0]['url'], 'type' = i['images'][0]['type']),
SyntaxError: keyword can't be an expression
那么,我做错了什么?这是数组结构还是当我尝试保存信息时? 任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
您看到的错误是因为您似乎在尝试使用关键字参数来调用函数/类,但不使用关键字,而是使用字符串。
def foo(a, b):
pass
foo(a=1, b=2) # Correct
foo('a'=1, 'b'=2) # Incorrect
如果您想保存具有键/值关联的内容,我建议您使用dict
(或者在您的情况下,使用dict
中的list
)
if(i['trailers'][0]):
a = [
{'url': i['images'][0]['url'], 'type': i['images'][0]['type']},
{'url': i['images'][1]['url'], 'type': i['images'][1]['type']},
] # etc.
else:
a = [
{'url': i['images'][0]['url'], 'type': i['images'][0]['type']},
{'url': i['images'][1]['url'], 'type': i['images'][1]['type']},
]
最后,作为半不相关的注释,如果i['trailers'][0]
为空列表(IndexError
),则检查i['trailers']
会抛出[]
。您可以仅使用i['trailers']
在if i['trailers']:
中进行检查。