Parse Python String for Units

2020-06-10 04:13发布

Say I have a set of strings like the following:

"5 m^2"
"17 sq feet"
"3 inches"
"89 meters"

Is there a Python package which will read such strings, convert them to SI, and return the result in an easily-usable form? For instance:

>>> a=dream_parser.parse("17 sq feet")
>>> a.quantity
1.5793517
>>> a.type
'area'
>>> a.unit
'm^2'

3条回答
放荡不羁爱自由
2楼-- · 2020-06-10 04:21

More recently, pint is a good place to start for most of these.

查看更多
乱世女痞
3楼-- · 2020-06-10 04:25

Is there an extension for ipython that can do at least part of what you want. It's called ipython-physics

It does store value and units and allows (at least) some basic math. I have never used it myself, so I don't know how easy would be to use in a python script

查看更多
4楼-- · 2020-06-10 04:40

Quantulum will do exactly what you described

Excerpt from its description:

from quantulum import parser

quants = parser.parse('I want 2 liters of wine') 

# quants [Quantity(2, 'litre')] 
查看更多
登录 后发表回答