this post was submitted on 15 Jan 2024
13 points (100.0% liked)

Python

6368 readers
18 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

πŸ“… Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

🐍 Python project:
πŸ’“ Python Community:
✨ Python Ecosystem:
🌌 Fediverse
Communities
Projects
Feeds

founded 1 year ago
MODERATORS
 

I have this XML

<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.16.1" type="navidrome" serverVersion="0.50.2 (823bef54)" openSubsonic="true"><searchResult3><song id="3b9d81b5def61a60705b9b89611a217f" parent="03693dd7b835740421cc1d6a4da201f3" isDir="false" title="Good Day featuring ScHoolboy Q" album="I Am &gt; I Was" artist="21 Savage" track="11" year="2018" genre="Rap" coverArt="mf-3b9d81b5def61a60705b9b89611a217f_5c1d3668" size="9716623" contentType="audio/mpeg" suffix="mp3" duration="242" bitRate="320" path="21 Savage/I Am &gt; I Was/11 - Good Day featuring ScHoolboy Q.mp3" created="2024-01-08T16:40:53.026754212Z" albumId="03693dd7b835740421cc1d6a4da201f3" artistId="1ae1d36568c651d53f78f427f05e9766" type="music" isVideo="false" bpm="0" comment=""><genres name="Rap"></genres></song></searchResult3></subsonic-response>

Which I got from an API call

I would like to be able to interact with it so I can check the artist and then pull the id

I thought this would be as simple as calling a key on an array (wrong terminology I know. Dict?), how wrong was I?

Having done some searching, I'm in the process of figuring out how xml.etree.ElementTree works. But it feels so overly complicated for what I'm trying to do? Am I going down the wrong path?

you are viewing a single comment's thread
view the rest of the comments
[–] sabreW4K3@lemmy.tf 2 points 10 months ago (1 children)

I think I can get a JSON response, would I then be able to do json[element] or would I still need to parse left, right and centre through complication valley?

[–] TootSweet@lemmy.world 6 points 10 months ago (1 children)

JSON would be a lot easier. Once you've parsed it, you've got a little structure of dicts, lists, and primitives. So you'd be able to directly index things like you're hoping.

Just to give an example:

>>> import json
>>> parsed = json.loads('{"foo":"a", "bar":"b", " baz":"c"}')
>>> parsed["foo"]
'a'

So, in short, yes, JSON would do what you're hoping.

[–] sabreW4K3@lemmy.tf 3 points 10 months ago (1 children)
[–] TootSweet@lemmy.world 2 points 10 months ago