Как бросить строку в dict? - PullRequest
0 голосов
/ 09 февраля 2020

Есть один сайт, который возвращает ответ в виде строки:

{"ConsignorName": "first part "second part""}

, который должен быть JSON. Результат должен быть

{'ConsignorName': 'first part "second part"'}

И я не могу просто json.loads(data), потому что он терпит неудачу с

json.decoder.JSONDecodeError: Expecting ',' delimiter:...`

Так что мне как-то нужно привести эту строку в dict. Может быть, вы знаете, как это сделать?

Ответы [ 2 ]

1 голос
/ 09 февраля 2020
d = {"ConsignorName": "first part \"second part\""}

По моему скромному мнению, вам нужно экранировать " внутри строки. В противном случае JSON будет ожидать правильно после "first part " a ,.

. Вы пишете и загружаете в / из json из python таким образом:

# write
with open("test.json", "w") as out: 
    json.dump(d, fp=out) 

# read
with open("test.json") as fin: 
    myd = json.load(fin)  

myd - это тогда:

myd
## {'ConsignorName': 'first part "second part"'}
0 голосов
/ 09 февраля 2020

{"ConsignorName": "первая часть" вторая часть ""}

действительно ли это возврат с сайтов? Это совсем не json.

Перед "second ...

" должен стоять символ перехода
...