Code Monkey home page Code Monkey logo

Comments (8)

tadams42 avatar tadams42 commented on May 20, 2024 3

Hi, sorry for late reply...

I like d.get("a.1.b") better since it is less chars to type :-)

from python-benedict.

fabiocaccamo avatar fabiocaccamo commented on May 20, 2024 2

@tadams42, @supersational, @d4n13lbc you can install 0.16.0 version.

List index support in keypaths has been implemented using the standard array syntax, eg: products[0].categories[1].name (additional quotes before/after the index will be ignored).

Let me know if you find any issue or you need new features.

from python-benedict.

supersational avatar supersational commented on May 20, 2024 1

I love this library for dealing with nested JSON data from web APIs (sometimes the JSON can be massive), just copy the paths into a benedict.

d = benedict(response.json())

One easy way to get the path in Chrome network tab at least, is to right click and press "Copy property path", I've attached a screenshot below
image

In this instance the path is icons[2].src, it would be great if this was supported by benedict :) although the other syntax is shorter and could also be used.

Also for larger structures this method can return odd double-quoting in paths, e.g. products[""0""].categories[1].name .. ugly syntax but in my case would be great if that also worked seamlessly with benedict!

from python-benedict.

fabiocaccamo avatar fabiocaccamo commented on May 20, 2024

Thank you, Iā€™m glad you like it.
This is a very good idea, I will implement it as soon as possible.

from python-benedict.

fabiocaccamo avatar fabiocaccamo commented on May 20, 2024

@tadams42 which syntax do you think is better?

d.get("a.1.b")

or

d.get("a[1].b")

from python-benedict.

d4n13lbc avatar d4n13lbc commented on May 20, 2024

I see this was implemented, but jsondiff returns integer as keys. With the current solution it is not possible to index by an integer key

from python-benedict.

fabiocaccamo avatar fabiocaccamo commented on May 20, 2024

@d4n13lbc don'worry, I will implement a flexible solution.

from python-benedict.

d4n13lbc avatar d4n13lbc commented on May 20, 2024

Probably not the best place or the best example, but maybe this is worthy for
somebody

data = benedict({'my_key': {1: {2: {'other_key': 'other_value'}}}})
>>> 'my_key[1]' in data
True
>>> 'my_key[1][2]' in data
True
data = benedict({'my_key': {'1': [{'a': 'b'}]}})
>>> 'my_key.1' in data
True
>>> 'my_key.1[0]' in data
True

Notice the use of [] for integer key and . for string key

from python-benedict.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    šŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. šŸ“ŠšŸ“ˆšŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ā¤ļø Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.