使用xlsxwriter可以将变量保存到现有的excel文件并在之后读取它们,尽管问题是变量在excel文件中存储为字符串.
假设我有各种类型的许多不同变量的列表(pd.datetimerange,pd.df,np.arrays等),如果我将它们保存到excel文件中,变量类型将丢失.
Python脚本也是从我的Excel文件中调用的,因此如果不编写VBA脚本,我就无法更改其中的任何内容.哪个会暂时关闭我的工作簿,转储字符(比如说pickle字符串)并重新打开它.
是否可以从excel文件中检索类型而无需先编写解析函数(这将采用excel字符串并使用等效的变量类型产生)?
我想分配:
x0='123'
x1='123'
x2='123'
x3='123'
x4='123'
x5='123'
x6='123'
x7='123'
x8='123'
x9='123'
Run Code Online (Sandbox Code Playgroud)
我编写代码来表示我可以123
在输入时获取字符串的输出x1
或x8
.
for i in range(0,10):
eval("x"+str(i)+"='123'")
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "<string>", line 1
x0='123'
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
例如,在下面的代码中,我想使用x作为参考获得列表[1,2,3].
In[1]: pasta=[1,2,3]
In:[2]: pasta
Out[2]: [1, 2, 3]
In [3]: x='pas'+'ta'
In [4]: x
Out[4]: 'pasta'
Run Code Online (Sandbox Code Playgroud) 我一直在试图弄清楚如何在Python中加载JSON对象.
def do_POST(self):
length = int(self.headers['Content-Length'])
decData = str(self.rfile.read(length))
print decData, type(decData)
"{'name' : 'journal2'}" <type 'str'>
postData = json.loads(decData)
print postData, type(postData)
#{'name' : 'journal2'} <type 'unicode'>
postData = json.loads(postData)
print postData, type(postData)
# Error: Expecting property name enclosed in double quotes
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
错误代码(JScript):
var data = "{'name':'journal2'}";
var http_request = new XMLHttpRequest();
http_request.open( "post", url, true );
http_request.setRequestHeader('Content-Type', 'application/json');
http_request.send(data);
Run Code Online (Sandbox Code Playgroud)
True Code(JScript):
var data = '{"name":"journal2"}';
var http_request = new XMLHttpRequest();
http_request.open( "post", url, true );
http_request.setRequestHeader('Content-Type', 'application/json'); …
Run Code Online (Sandbox Code Playgroud) 从表面上看,python本身就使用了json.我能想到的唯一例外是json可以存储js函数.
这是我的问题:我需要通过终端将json传递给python文件.
为什么我应该或不应该只使用eval()?
我看到许多人说"eval是邪恶的/危险的/不安全的",因为人们可以这样做:
eval("os.system('rm -rf /')")
Run Code Online (Sandbox Code Playgroud)
而在其他帖子中,pythoner被认为是" 同意成人 ",你不必进行类型检查,因为python是鸭子打字的样式.
那么下面的代码呢:
def foo(duck):
duck.quack()
class EvilDuck(object):
def quack(self):
os.system('rm -rf /')
foo(EvilDuck())
Run Code Online (Sandbox Code Playgroud)
你通常如何避免这种情况?pythoner何时同意成年人,何时不同意?
我正在尝试创建一个基本菜单,检查输入的变量是否与定义的变量匹配.如果定义了变量,则获取已定义变量的数据.
例.
Item1 = "bill"
Item2 = "cows"
item3 = "abcdef"
Choose_Item = input("Select your item: ")
Run Code Online (Sandbox Code Playgroud)
Item1
Choose_Item
应该相等 "bill"
我知道不应该使用eval
.出于所有明显的原因(性能,可维护性等).我的问题更侧重 - 是否有合法用途?应该使用它而不是以另一种方式实现代码.
由于它以多种语言实现并且可能导致糟糕的编程风格,因此我认为它仍然可用.
numOfYears = 0
cpi = eval(input("Enter the CPI for July 2015: "))
if cpi.isdigit():
while cpi < (cpi * 2):
cpi *= 1.025
numOfYears += 1
print("Consumer prices will double in " + str(numOfYears) + " years.")
while not cpi.isdigit():
print("Bad input")
cpi = input("Enter the CPI for July 2015: ")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.
AttributeError:'int'对象没有属性'isdigit'
由于我是编程新手,我真的不知道它想告诉我什么.我正在使用它if cpi.isdigit():
来检查用户输入的内容是否是有效数字.
我有一个字节类型的对象,像这样:
b"{'one': 1, 'two': 2}"
Run Code Online (Sandbox Code Playgroud)
我需要使用python代码从字典中获取字典。我将其转换为字符串,然后如下转换为字典。
string = dictn.decode("utf-8")
print(type(string))
>> <class 'str'>
d = dict(toks.split(":") for toks in string.split(",") if toks)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
------> d = dict(toks.split(":") for toks in string.split(",") if toks)
TypeError: 'bytes' object is not callable
Run Code Online (Sandbox Code Playgroud) python ×10
json ×2
conventions ×1
dictionary ×1
django ×1
duck-typing ×1
eval ×1
javascript ×1
matlab ×1
node.js ×1
object ×1
pandas ×1
parsing ×1
python-3.x ×1
reference ×1
string ×1
vba ×1
xlsxwriter ×1