Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
定义字符串中的Python语法错误_Python_Syntax - Fatal编程技术网

定义字符串中的Python语法错误

定义字符串中的Python语法错误,python,syntax,Python,Syntax,我必须使用以下代码: local_arg = "1 : ASD|2|3|4|5, 2 : BSD|4|3|2|1, " result_arg = {} result_arg = {"inf" : {local_arg}} 语法错误(无效语法):result_arg={“infos”:{local_arg} 怎么了 我想用它来做这个: result_arg["inf"][number] 我试过使用: result_arg = {} result_arg = {"inf" : {1 : ASD|

我必须使用以下代码:

local_arg = "1 : ASD|2|3|4|5, 2 : BSD|4|3|2|1, "
result_arg = {}
result_arg = {"inf" : {local_arg}}
语法错误(无效语法):
result_arg={“infos”:{local_arg}
怎么了

我想用它来做这个:

result_arg["inf"][number]
我试过使用:

result_arg = {}
result_arg = {"inf" : {1 : ASD|2|3|4|5, 2 : BSD|4|3|2|1,}}

这是可行的,但我的地图将自动创建,因此使用它不是一个解决方案。

您首先需要使用
拆分本地参数,然后使用
len>1
使用
(用于避免
)拆分字符串:

所以你可以这样做:

>>> s=[j.split(':') for j in local_arg.split(',') if len(j)>1]
>>> s
[['1 ', ' ASD|2|3|4|5'], [' 2 ', ' BSD|4|3|2|1']]
>>> {'inf':{i:j for i,j in s }}
{'inf': {'1 ': ' ASD|2|3|4|5', ' 2 ': ' BSD|4|3|2|1'}}

在代码末尾,单词ay
result\u arg
将如下所示

{'inf': {'1 : ASD|2|3|4|5, 2 : BSD|4|3|2|1, '}}
这里的
result\u arg['inf']
是一个
集合
。不是具有键值对的字典。所以你得到了错误。代码中可能还有其他问题,它应该给出
TypeError
而不是
SyntaxError

从字符串中,你可以这样接近

local_arg = "1 : ASD|2|3|4|5, 2 : BSD|4|3|2|1, "
d = [itm.split(':') for itm in local_arg.strip().split(',') if itm]
c = dict((int(itm[0]), itm[1]) for itm in d)
result_arg = {}
result_arg = {"inf" : c}
ASD|2|3|4|5
现在你可以打印了

print result_arg["inf"][1]
将给您这样的输出

local_arg = "1 : ASD|2|3|4|5, 2 : BSD|4|3|2|1, "
d = [itm.split(':') for itm in local_arg.strip().split(',') if itm]
c = dict((int(itm[0]), itm[1]) for itm in d)
result_arg = {}
result_arg = {"inf" : c}
ASD|2|3|4|5

字典必须有钥匙和钥匙value@TidB:但在Python2.7及更高版本中,您可以定义这样的集合<代码>{value1,value2,value3}是一个集合,而不是字典。大概OP使用的是Python的旧版本。呃,我不知道,谢谢!
local_arg
是否始终是字符串?然后你需要把它解析成键值对。Sombody可以举个例子吗?(我不太懂英语)我的语法错误是:c=dict((int(itm[0]),itm[1]),因为d中的itm)我不知道你的字符串是什么样的,你的问题中也没有提到它。在提问时,试着给出适合您的示例输入。给出带有
SyntaxError
的消息,谢谢您的帮助,不管怎样,我只得到了这个消息:SyntaxError-无效的syntaxer没有人可以帮您提供此信息。粘贴完整的代码显示您从何处获取此
SyntaxError
。如果在复制粘贴我的代码后出现错误,那么可能会出现缩进问题。我尝试过,但在以下方面出现语法错误:result_arg={'inf':{I:j for I,j in s}}我没有得到详细的错误消息,我只得到了“ErrorSyntax:Invalid string-strings”…,你有skype吗?我真的需要帮助。代码对我来说工作正常?我想你打字有错误?我想看看你要运行的代码!我只能说你不需要
result\u arg={}
,但我看不到任何错误!你有skype id或facebook吗?有其他选择吗?