gpt4 book ai didi

python - 将许多python变量的列表保存到excel表中,同时保持变量类型的定义?

转载 作者:IT老高 更新时间:2023-10-28 21:14:11 25 4
gpt4 key购买 nike

xlsxwriter 可以将变量保存到现有的 excel 文件中并在之后读取它们,但问题是变量在我的 excel 文件中存储为字符串。

假设我有许多不同类型的变量列表(pd.datetimerange、pd.df、np.arrays 等),如果我将它们保存到 excel 文件中,变量类型将会丢失。

Python 脚本也是从我的 Excel 文件中调用的,因此如果不编写 VBA 脚本,我将无法更改其中的任何内容。这将暂时关闭我的工作簿,转储字符(比如泡菜字符串)并重新打开它。

是否可以在不首先编写解析函数的情况下从 excel 文件中检索类型(这将获取 excel 字符串并使用等效的变量类型生成我)?

最佳答案

根据您的评论,您可以让 eval 正确处理某些模块的本地符号,方法是将适当的本地字典传递给 eval,以及您的字符串。这是一个可行的解决方案:

import pandas as pd

def getlocals(obj, lcls=None):
if lcls is None: lcls = dict(locals().items())

objlcls = {k:v for k,v in obj.__dict__.items() if not k.startswith('_')}
lcls.update(objlcls)

return lcls

x = "[123,DatetimeIndex(['2018-12-04','2018-12-05', '2018-12-06'],dtype='datetime64[ns]', freq='D')]"
lcls = getlocals(pd)

result = eval(x, globals(), lcls)
print(result)

输出:

[123, DatetimeIndex(['2018-12-04', '2018-12-05', '2018-12-06'], dtype='datetime64[ns]', freq='D')]

作为负责人,我还有责任警告您,在您的应用程序中使用 eval 非常不安全。有are许多discussions eval 的危险,并且没有一个建议有办法完全减轻这些危险。如果您选择使用此代码,请小心。

关于python - 将许多python变量的列表保存到excel表中,同时保持变量类型的定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53663758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com