Извлечь значение из метафайла S3 Bucket - PullRequest
0 голосов
/ 09 апреля 2020

Я прочитал файл из S3 Bucket, используя obj.get()['Body'].read(), и это вернуло

b'[{ "version": "v1", "timeDelta": 0.0, "artist": "", "title": "text="Spot Block End" amgTrackId="9876543"", "timestamp": "1586453290376" }]'

Я хотел бы извлечь значение ключа отметки времени.

Я сохранил несколько файлов .meta в моем контейнере s3, мне нужно проверить, что каждый из моих файлов .meta имеет метку времени

1 Ответ

1 голос
/ 09 апреля 2020

Это не в формате json. Похоже, вам нужно экранировать "в заголовке ключа

"title": "text=\"Spot Block End\" amgTrackId=\"9876543\""

Вот так.

Может быть, вы можете попытаться использовать регулярное выражение, чтобы сделать это для вас.

РЕДАКТИРОВАТЬ:

import json
import re

input = b'[{ "version": "v1", "timeDelta": 0.0, "artist": "", "title": "text="Spot Block End" amgTrackId="9876543"", "timestamp": "1586453290376" }]'
input = input.decode('utf-8')

match = re.findall('(?<=\"title\": \").*\"(?=\")',input)[0]
escaped_match = json.dumps(match)
input = input.replace(match,escaped_match[1:-1])

print(json.loads(input))

Взгляните на этот код, он немного уродливый, но он работает.

Надеюсь, это поможет!

...