Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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_Json - Fatal编程技术网

Python 如何从字典的开头删除?

Python 如何从字典的开头删除?,python,json,Python,Json,如何将下面的字符串转换为Python字典 import json nls_wti = '"{"dataset": "nls","nls_tables_wti":[{ "source":"l_history" ,"patha":" SELECT a. FROM l_trans_history a WHERE CAST(a.transaction_date A

如何将下面的字符串转换为Python字典

import json

nls_wti = '"{"dataset": "nls","nls_tables_wti":[{ "source":"l_history" ,"patha":" SELECT a. FROM l_trans_history a WHERE CAST(a.transaction_date AS DATE) = " ,"pathb":" ) UNION SELECT a. FROM loanacct_trans_history a INNER JOIN ( SELECT reversal_transrefno from loanacct_trans_history WHERE (transaction_code % 2) = 1 and CAST(transaction_date AS DATE) >= " ,"pathc":" and transrefno <> 0 ) b ON a.transrefno = b.reversal_transrefno --" ,"pathd":"--" ,"pathe":"--" ,"pathf":"--" ,"pathg":"--" ,"pathh":"--" ,"pathi":"--" ,"pathj":"--" ,"pathk":"--" ,"pathl":"t_loanacct_trans_history" ,"pathm":"WRITE_TRUNCATE" ,"pathn":"b" } ,{ "source":"loanacct_payment_history" ,"patha":" SELECT a. FROM l_history a WHERE CAST(a.gl_date AS DATE) = " ,"pathb":" ) --" ,"pathc":"--" ,"pathd":"--" ,"pathe":"--" ,"pathf":"--" ,"pathg":"--" ,"pathh":"--" ,"pathi":"--" ,"pathj":"--" ,"pathk":"--" ,"pathl":"t_l_history" ,"pathm":"WRITE_TRUNCATE" ,"pathn":"c" } ,{ "source":"loanacct_statistics" ,"patha":" SELECT a. FROM loanacct_statistics a WHERE a.master_record = 0 OR ( a.master_record = 1 and a.year_number = DATEPART(Year, " ,"pathb":" )) OR (a.master_record = 2 and a.month_number = CONVERT(INT,LEFT(REPLACE( " ,"pathc":" ,""-"","""") ,6)))) --" ,"pathd":"--" ,"pathe":"--" ,"pathf":"--" ,"pathg":"--" ,"pathh":"--" ,"pathi":"--" ,"pathj":"--" ,"pathk":"--" ,"pathl":"t_l_statistics" ,"pathm":"WRITE_TRUNCATE" ,"pathn":"d"}]}"'
nls_wti = nls_wti.replace("'", "")
nls_wti = json.loads(nls_wti)
期望:

{"dataset": "nls","nls_tables_wti":[{ "source":"l_history" ,"patha":" SELECT a. FROM l_trans_history a WHERE CAST(a.transaction_date AS DATE) = " ,"pathb":" ) UNION SELECT a. FROM loanacct_trans_history a INNER JOIN ( SELECT reversal_transrefno from loanacct_trans_history WHERE (transaction_code % 2) = 1 and CAST(transaction_date AS DATE) >= " ,"pathc":" and transrefno <> 0 ) b ON a.transrefno = b.reversal_transrefno --" ,"pathd":"--" ,"pathe":"--" ,"pathf":"--" ,"pathg":"--" ,"pathh":"--" ,"pathi":"--" ,"pathj":"--" ,"pathk":"--" ,"pathl":"t_loanacct_trans_history" ,"pathm":"WRITE_TRUNCATE" ,"pathn":"b" } ,{ "source":"loanacct_payment_history" ,"patha":" SELECT a. FROM l_history a WHERE CAST(a.gl_date AS DATE) = " ,"pathb":" ) --" ,"pathc":"--" ,"pathd":"--" ,"pathe":"--" ,"pathf":"--" ,"pathg":"--" ,"pathh":"--" ,"pathi":"--" ,"pathj":"--" ,"pathk":"--" ,"pathl":"t_l_history" ,"pathm":"WRITE_TRUNCATE" ,"pathn":"c" } ,{ "source":"loanacct_statistics" ,"patha":" SELECT a. FROM loanacct_statistics a WHERE a.master_record = 0 OR ( a.master_record = 1 and a.year_number = DATEPART(Year, " ,"pathb":" )) OR (a.master_record = 2 and a.month_number = CONVERT(INT,LEFT(REPLACE( " ,"pathc":" ,""-"","""") ,6)))) --" ,"pathd":"--" ,"pathe":"--" ,"pathf":"--" ,"pathg":"--" ,"pathh":"--" ,"pathi":"--" ,"pathj":"--" ,"pathk":"--" ,"pathl":"t_l_statistics" ,"pathm":"WRITE_TRUNCATE" ,"pathn":"d"}]}
以上方式不工作或抛出错误。如果我能从一开始就删除“引号”,它可能会解决问题。

问题不在于整个身体的“引号”,而是多余的引号。你的话被引用了两次;它应该看起来像“{dataset:…}”,而不是“{dataset:…}”。理想情况下,无论nls_wti来自何处,如果从文件读取、网络请求或只是复制粘贴,都应该发送回正确的JSON,但如果无法更改,则可以使用以下内容删除额外的引号:

nls_wti=nls_wti[1:-1]
这将删除文本的第一个和最后一个字符以及这些额外的引号。

前导和尾随“使nls_wti成为字符串。无法删除它们,因为它们不会出现在字符串中。你所期望的不是词典的预期结构。如果你想把它写在.JSON文件中,为什么不把它写在文件中呢?这不是一个正确的JSON字符串,不管有没有“开头和结尾…”。。。试试看。数据不是有效的JSON。在其他问题中,它包含一个三重引号的字符串-参见,pathc:,-,6部分。这不是唯一的错误。您是否尝试使用OP的数据运行您的答案?nls_wti[1:-1]仍然不是正确的JSON字符串。引用的字段本身不正确。