我有一个很长的字符串,我正试图对它使用json.loads(),但我不能这样做,因为据我所知,json只接受双引号,而且由于这个字符串的长度,它会被自动拆分,以适应包含单引号的新行。有什么办法可以防止这种情况发生吗?
下面是python 2.7中的示例
string = "a long string' \
'still going"
json.loads(string)
Invalid control character fails at char #我知道如果全是双引号或单引号都可以,但是当我使用单引号时,json.loads(字符串)不能识别它。
编辑:
带有单引号的字符串来自套接字,我无法控制它。他们接受一个单引号的字符串,并将双引号放在末尾,这样它就在json.loads方法中。但是,中断长字符串的单引号仍然存在,并导致了问题
这也不是json的所有数据,只有一个值为1。
发布于 2017-08-11 23:20:43
只需将您的简单引号替换为+:
string = "a long string"+ \
"still going"
json.loads(string)发布于 2017-08-11 23:42:56
我假设您希望第一行作为key,第二行作为value。我假设只有两行以'分隔符作为分隔符。
代码:
import json
string = "a long string' \
'still going"
print json.dumps( dict([string.splitlines()[0].split('\' \'')]) )输出:
>> {"a long string": "still going"}发布于 2017-08-11 23:56:51
首先,JSON中的字符串是only "your string"。如果在JSON中使用单引号而不是双引号,就会使JSON无效。
顺便说一句,你的字符串应该是这样的
string = "\"My awesome string" \
"it ends right there\""或
string = '"My awesome string' \
'it ends right there"'或
string = (
'"My awesome string'
'it ends right there"'
)https://stackoverflow.com/questions/45638547
复制相似问题