Hi all,
I have a pio app and I need to update item properties regularly. However,
not all items will have all properties always. So I want to update the
properties dynamically doing something similiar to the following:
# create properties json
propertiesjson = '{'
if "tiempo" in dfcolumns:
propertiesjson = propertiesjson + '"tiempo": ' +
str(int(plan.tiempo))
if "duracion" in dfcolumns:
propertiesjson = propertiesjson + ', "duracion": ' +
str(plan.duracion)
propertiesjson = propertiesjson + '}'
# add event
client.create_event(
event="$set",
entity_type="item",
entity_id=plan.id_product,
properties=json.dumps(propertiesjson)
)
However, this results in an error message:
Traceback (most recent call last):
File "import_itemproperties.py", line 110, in <module>
import_events(client, args.dbuser, args.dbpasswd, args.dbhost,
args.dbname)
File "import_itemproperties.py", line 73, in import_events
properties=json.dumps(propertiesjson)
File
"/home/ubuntu/.local/lib/python2.7/site-packages/predictionio/__init__.py",
line 255, in create_event
event_time).get_response()
File
"/home/ubuntu/.local/lib/python2.7/site-packages/predictionio/connection.py",
line 111, in get_response
self._response = self.rfunc(tmp_response)
File
"/home/ubuntu/.local/lib/python2.7/site-packages/predictionio/__init__.py",
line 130, in _acreate_resp
response.body))
predictionio.NotCreatedError: request: POST
/events.json?accessKey=0Hys1qwfgo3vF16jElBDJJnSLmrkN5Tg86qAPqepYPK_-lXMqI4NMjLXaBGgQJ4U
{'entityId': 8, 'entityType': 'item', 'properties': '"{\\"tiempo\\": 2,
\\"duracion\\": 60}"', 'event': '$set', 'eventTime':
'2017-12-22T11:29:59.762+0000'}
/events.json?accessKey=0Hys1qwfgo3vF16jElBDJJnSLmrkN5Tg86qAPqepYPK_-lXMqI4NMjLXaBGgQJ4U?entityId=8&entityType=item&properties=%22%7B%5C%22tiempo%5C%22%3A+2%2C+%5C%22duracion%5C%22%3A+60%2C&event=%24set&eventTime=2017-12-22T11%3A29%3A59.762%2B0000
status: 400 body: {"message":"org.json4s.package$MappingException: Expected
object but got JString(\"{\\\"tiempo\\\": 2, \\\"duracion\\\": 60}\")"}
Any help is much appreciated!
Season's greetings!
Noelia