Comments (2)
Hello @wRAR , this is related to how itemloaders build the items.
What's happening here is that ItemLoader
will create an instance of ArticleItem
without values. Because of that, the user_rating
is set to -999 during the instance creation, and ItemLoader will assume as the first value discovered to that field. This is the same behaviour as to passing an already pre-filled dictionary to an item loader:
>>> loader = RappiLoader(item={"user_rating": 2.5})
>>> loader.add_value("user_rating", 0) # Add fallback value in case user_rating was not defined
>>> loader.load_item()
{'user_rating': 2.5}
In this case however, the expectation would be to keep the initial value already provided.
I think this shouldn't be fixed. The list of values are always added in the same order. Then, is up to the user to decide what to do with them - e.g. select the first one, last one, all of them, apply some filters, or manipulate them-.
You can implementing a custom selector that fits your needs.
from itemloaders.
Moving this to itemloaders, though on a second thought (and without checking any code) it may be, though not likely, itemdapter-specific.
from itemloaders.
Related Issues (20)
- Migrate scrapy-loader-upkeep into this repo HOT 2
- Fix empty __init__ limitation for dataclasses HOT 6
- Mark dataclass and attrs support as experimental HOT 5
- Calling get_output_value causes loader to assign an "empty" value to field
- Unexpected behaviour while adding scrapy.Item sub class as a value to itemloader.
- Allow None values in Itemloaders/Items HOT 5
- Import of old scrapylib processor functions? HOT 2
- [NestedItemTest.test_scrapy_item] test failing on python 3.9 HOT 1
- Optimizing wrap_loader_context() HOT 2
- The re-introduction of nested item support caused a significant performance degradation
- Fluent Interface call-style for ItemLoader methods
- ValueError: XPath error: Unknown return type: re.Pattern in //tr[starts-with(td[1]/text(), "Цена:")]/td[2]/text() HOT 1
- *_{css,xpath} taking multiple selectors HOT 1
- Remove `**kw` from the `_get_cssvalues` signature
- Add support for pre-commit
- if the value is 0 (int) it will be set to None HOT 7
- Balance request concurrency vs successful meta extraction
- test_get_func_args() will fail in Python 3.12.3 HOT 1
- Assertion error after nested HOT 5
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 itemloaders.