Comments (3)
Unless I misunderstand you, this is the expected behavior of furl.args
.
furl.args is a dictionary (an orderedmultidict to be specific), and just like a
standard Python dictionary, KeyError
is raised on a missing key.
>>> d = {1:1}
>>> d[2]
Traceback (most recent call last):
...
KeyError: 2
>>>
>>> from furl import furl
>>> f = furl('http://www.google.com/?1=1')
>>> dict(f.args)
{'1': '1'}
>>> f.args[2]
Traceback (most recent call last):
...
KeyError: 2
To avoid raising a KeyError on a missing key, use the get()
method, just like
the get()
method of standard Python dictionaries.
>>> from furl import furl
>>> f = furl('http://www.google.com/?1=1')
>>> dict(f.args)
{'1': '1'}
>>> print(f.args.get(2))
None
Or, in your example
import os
uri = os.environ['REQUEST_URI']
from furl import furl
f = furl(uri)
print f.args.get('product')
print f.args.get('category')
Does that answer your question?
from furl.
Little bump -- does my previous question answer your question, @billdesk?
from furl.
Closing due to inactivity.
Please reopen if your query was unanswered above.
from furl.
Related Issues (20)
- furl doesn't type-hint itself as Text HOT 3
- url parsing still accepts semicolon as separator HOT 5
- Add typing support HOT 6
- Hi, if the URL is like '127.0.0.1:8080/a/b', the result is '8080/a/b', which seems incorrect HOT 2
- How handle javascript:void(0) HOT 2
- Feature: Addition of `is_domain` flag
- Maximum recursion depth exceeded error for url with large list HOT 3
- Adding README to PyPi HOT 2
- '127.0.0.1:8329' parsed wrong in Python 3.9+ HOT 3
- Add SECURITY.md HOT 3
- Feature request: Convert to unescaped string HOT 2
- .join() and .path.normalize() incorrectly interpret base paths ending /. or /..
- furl.path object is NOT of type: pathlib.Path HOT 1
- Feature requests: get url relative to another url
- Setting multiple query params for the same key and resultant url format
- Seems to be a bug when paring multiple '@'s ?
- Use the `ipaddress` module to detect valid IPV6 HOT 1
- a method to set an individual query parameter without removing the rest or keeping the original value
- Removes "git@" from git remote URL HOT 1
- URL fragment percent-encoding
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from furl.