aboutcode-org / scancode-toolkit

:mag: ScanCode detects licenses, copyrights, dependencies by "scanning code" ... to discover and inventory open source and third-party packages used in your code. Sponsored by NLnet project https://nlnet.nl/project/vulnerabilitydatabase, the Google Summer of Code, Azure credits, nexB and others generous sponsors!
https://github.com/aboutcode-org/scancode-toolkit/releases/
2.07k stars 537 forks source link

Upgrade json2csv.py script to handle the new ABCD format. #339

Closed steven-esser closed 7 years ago

steven-esser commented 7 years ago

Currently, the json2csv.py script cannot convert ABCD formatted scan results from JSON to csv.

For example, running the current develop branch (w ABCD formatting) results in this error:

# scancode -ilpc samples/ ~/ABCD_scan_results.json && python etc/scripts/json2csv.py ~/ABCD_scan_results.json ~/ABCD_scan_results.csv
Scanning files...
  [####################################]  43                                     
Scanning done.
Traceback (most recent call last):
  File "etc/scripts/json2csv.py", line 345, in <module>
    cli()
  File "/Users/sesser/Documents/src/scancode/lib/python2.7/site-packages/click/core.py", line 664, in __call__
    return self.main(*args, **kwargs)
  File "/Users/sesser/Documents/src/scancode/lib/python2.7/site-packages/click/core.py", line 644, in main
    rv = self.invoke(ctx)
  File "/Users/sesser/Documents/src/scancode/lib/python2.7/site-packages/click/core.py", line 837, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/sesser/Documents/src/scancode/lib/python2.7/site-packages/click/core.py", line 464, in invoke
    return callback(*args, **kwargs)
  File "etc/scripts/json2csv.py", line 341, in cli
    json_scan_to_csv(json_input, csv_output, strip=strip)
  File "etc/scripts/json2csv.py", line 119, in json_scan_to_csv
    scan_results = load_scan(json_input)
  File "etc/scripts/json2csv.py", line 109, in load_scan
    scan_results = scan_results['results']
KeyError: 'results'

And running on the v1.6.3 release (old scan format) generates a correct csv output file:

# scancode -ilpc samples/ ~/old_scan_results.json && python etc/scripts/json2csv ~/old_scan_results.json ~/old_scan_results.csv
JonoYang commented 7 years ago

Fixed in #399