我有一个包含两列的Excel文件;第一个包含我的变量名,第二个包含一个类型为字符串的数学表达式。使用Python 2.7.12和openpyxl 2.3.2,我导入了这些数据。默认情况下,该字符串将作为unicode导入。
我想从导入的字符串创建一个Sympy对象来对其执行一些操作。但是,在这种情况下,同意我导入的字符串会返回一个字符串对象,而不是SymPy对象。这是为什么?
如果我将字符串硬编码到我的.py文件中,我会得到预期的行为(同意返回一个SymPy对象)。
此代码说明:
from sympy import *
import openpyxl
imported_data = openpyxl.load_workbook('sample_workbook.xlsx')
data = imported_data.get_sheet_by_name('sheet1')
variable_name = data['A1'].value
variable_value = data['B1'].value
globals()[variable_name] = variable_value
x = symbols('x')
print(type(variable1)) # This is a unicode string
sympy_expr = sympify(variable1)
print(type(sympy_expr)) # This should now be a SymPy object, but it's now of type str