I'm using GnuCash and not being able to easily do bulk changes or easily script it is quite annoying, for example after a slight mistake in a CSV import.
If nothing else works, a Gnucash file is XML. A bit annoying to work with, but quite possible.
Does it allow setting values, or just reading?