簡體   English   中英

如何將字典作為參數從 make 文件發送到 python 文件?

[英]How do I send a dictionary as an argument to python file from a make file?

我正在嘗試編寫一個 makefile 從中調用 python 腳本。 在調用 python 腳本時,我發送了一個字符串,該字符串將轉換為 python 中的字典,定義如下:

DATE:= 25
YEAR := 2021
COMMA := ,
BRACE_OPEN := {
BRACE_CLOSE := } 
STRING_DICTIONARY:=$(BRACE_OPEN)\"Jan\":$(DATE)$(YEAR)$(COMMA)\"Feb\":$(DATE)$(YEAR)$(COMMA)\"Mar\":$(DATE)$(YEAR)$(COMMA)\\"Apr\":$(DATE)$(YEAR)$(BRACE_CLOSE)

當我從 makefile 調用 python 腳本時:

`myscript.py $(DICTIONARY)`

python 僅接受“Jan”:252021並省略元素的 rest

我希望字符串參數為"Jan":252021,"Feb":252021,"Mar":252021,"Apr":252021

我需要這個並將其轉換為字典

submit_date = eval(sys.argv[1])在我的腳本中

它拋出錯誤 SyntaxError: invalid syntax

有人可以告訴我如何解決這個問題嗎?

我要注意的第一件事是,您對這一行有一些語法/格式問題:

STRING_DICTIONARY:=$(BRACE_OPEN)\"Jan\":$(DATE)$(YEAR)$(COMMA)\"Feb\":$(DATE)$(YEAR)$(COMMA)\"Mar\":$(DATE)$(YEAR)$(COMMA)\\"Apr\":$(DATE)$(YEAR)$(BRACE_CLOSE)

請注意 4 月的格式與月份的 rest 有何不同。

此外,您可能希望使用更“本機支持”的方式來創建數據字典。 I am not sure what shell syntax you are using for your makefile because you did not specify, but if you are using Bash syntax for your makefile you can use an Associative Array to make this task easier. 這些類似於字典,並在 此處進行說明。

我認為非 Bash 語法 makefile 也有類似的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM