У меня есть файл JSON, в котором объекты находятся в этой форме:
{
"timestamp": 1568811686,
"attachments": [
{
"data": [
{
"external_context": {
"url": "https://media2.giphy.com/media/ce1ARlVo9jPdhwbOKL/v1.Y2lkPTEyMGMwMTQ3NTRjOGMwMjc2MTU2NzE5NmRiODQ5NzY5MTEyN2JmMmZmZTMwNjg3Mg/giphy-downsized.gif"
}
}
]
}
],
"title": "Name Surname ha commentato il post di Name Surname."
},
, но не у всех есть ключ 'url'. Я пытаюсь добавить эти объекты в базу данных neo4j, используя py2neo, и я написал следующую функцию, чтобы сделать это:
for comment in comments['comments']:
if 'data' in comment:
group = ''
for d in comment['data']:
comment = d['comment']['comment'].encode('latin1')
if 'group' in d['comment']:
group = d['comment']['group'].encode('latin1')
if group == '':
node = Node('Comment', timestamp=timestamp, title=title, comment=comment_text)
else:
node = Node('Comment', timestamp=timestamp, title=title, comment=comment_text, group=group)
graph.create(node)
if 'attachments' in comment:
for attachments in comment['attachments']:
for d in attachments['data']:
if 'external_context' in d:
url = d['external_context']['url']
print url
Для тестирования я просто печатаю переменную url , но здесь у меня есть некоторые проблемы, на самом деле, если я запускаю этот код второй , если (, если 'attachments' в комментарии: ) не выполняется, ноесли я инвертирую два оператора if, код выполняется правильно. Почему?