Navigation

    Quantiacs Community

    • Register
    • Login
    • Search
    • Categories
    • News
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Errors when I save the isssus parameters of my optimization in the json file

    Strategy help
    2
    3
    199
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      dark.pidgeot last edited by

      Hello everyone,

      I get errors when I save the isssus parameters of my optimization in the json file

      I've created a program that takes two parameters param1 and param2. I have otpimized them and I would like to save the parameters in a json file.

      here's a snippet of the command used :

      #DEBUG#

      evaluator will remove cells with such marks before evaluation

      result_long = qno.optimize_strategy(
      data,
      strategy_long,
      qno.full_range_args_generator(param1=np.arange(10, 20, 1, dtype=int),param2=np.arange(1, 20, 2, dtype=int),
      asset=data.asset.values.tolist()),
      workers=10 # you can set more workers on your local PC to speed up
      )

      config = find_best_parameters(result=result_long, asset_count=15, parameter_set_count=3)

      If you change the asset_count and/or parameters_count, you will get a new strategy.

      json.dump(config, open('config.json', 'w'), indent=2)

      display(config)

      I get the following errors


      TypeError Traceback (most recent call last)
      Cell In[10], line 30
      27 config = find_best_parameters(result=result_long, asset_count=15, parameter_set_count=3)
      28 # If you change the asset_count and/or parameters_count, you will get a new strategy.
      ---> 30 json.dump(config, open('config.json', 'w'), indent=2)
      32 display(config)

      File /usr/local/lib/python3.10/json/init.py:179, in dump(obj, fp, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)
      173 iterable = cls(skipkeys=skipkeys, ensure_ascii=ensure_ascii,
      174 check_circular=check_circular, allow_nan=allow_nan, indent=indent,
      175 separators=separators,
      176 default=default, sort_keys=sort_keys, **kw).iterencode(obj)
      177 # could accelerate with writelines in some versions of Python, at
      178 # a debuggability cost
      --> 179 for chunk in iterable:
      180 fp.write(chunk)

      File /usr/local/lib/python3.10/json/encoder.py:429, in _make_iterencode.<locals>._iterencode(o, _current_indent_level)
      427 yield _floatstr(o)
      428 elif isinstance(o, (list, tuple)):
      --> 429 yield from _iterencode_list(o, _current_indent_level)
      430 elif isinstance(o, dict):
      431 yield from _iterencode_dict(o, _current_indent_level)

      File /usr/local/lib/python3.10/json/encoder.py:325, in _make_iterencode.<locals>._iterencode_list(lst, _current_indent_level)
      323 else:
      324 chunks = _iterencode(value, _current_indent_level)
      --> 325 yield from chunks
      326 if newline_indent is not None:
      327 _current_indent_level -= 1

      File /usr/local/lib/python3.10/json/encoder.py:405, in _make_iterencode.<locals>._iterencode_dict(dct, _current_indent_level)
      403 else:
      404 chunks = _iterencode(value, _current_indent_level)
      --> 405 yield from chunks
      406 if newline_indent is not None:
      407 _current_indent_level -= 1

      File /usr/local/lib/python3.10/json/encoder.py:438, in _make_iterencode.<locals>._iterencode(o, _current_indent_level)
      436 raise ValueError("Circular reference detected")
      437 markers[markerid] = o
      --> 438 o = _default(o)
      439 yield from _iterencode(o, _current_indent_level)
      440 if markers is not None:

      File /usr/local/lib/python3.10/json/encoder.py:179, in JSONEncoder.default(self, o)
      160 def default(self, o):
      161 """Implement this method in a subclass such that it returns
      162 a serializable object for o, or calls the base implementation
      163 (to raise a TypeError).
      (...)
      177
      178 """
      --> 179 raise TypeError(f'Object of type {o.class.name} '
      180 f'is not JSON serializable')

      TypeError: Object of type int64 is not JSON serializable

      thank you in advance for your help

      support 1 Reply Last reply Reply Quote 1
      • support
        support @dark.pidgeot last edited by

        @dark-pidgeot Hello, it seems json doesn't accept numpy data types, replacing np.arange(10, 20, 1, dtype=int) with range(10,20,1) in full_range_args_generator function input, should fix it.

        Regards,

        D 1 Reply Last reply Reply Quote 0
        • D
          dark.pidgeot @support last edited by

          @support Thank you for your advise, it's ok

          1 Reply Last reply Reply Quote 0
          • First post
            Last post
          Powered by NodeBB | Contributors
          • Documentation
          • About
          • Career
          • My account
          • Privacy policy
          • Terms and Conditions
          • Cookies policy
          Home
          Copyright © 2014 - 2021 Quantiacs LLC.
          Powered by NodeBB | Contributors