Доступ к значению из строкового объекта — Javascript

Не знаю, почему я не могу получить доступ к ключам из строкового объекта. данные выглядят так Я получаю эти данные из переменной python

const data = '{regression: {success: 7310, total: 14154, failed: 4665, unstable: 2104, aborted: 75}, stable: {success: 2699, total: 4252, failed: 462, unstable: 15, aborted: 1076}, patch: {success: 2824, total: 5494, failed: 2518, unstable: 39, aborted: 113}}'

Мне нужно извлечь ключи регрессии, стабильной работы, исправления и, в конечном итоге, подробностей о том, сколько тестовых случаев было успешно, всего, неудачно и т. д.

Пытался изменить строку на объект с помощью JSON.parse(data), но выдает ошибку, так как это не объект.

Как я могу извлечь ключи и значение в этом случае

Это строка, а не объект. И это недействительный JSON, поэтому его нельзя проанализировать. Откуда это? Лучший способ — либо иметь объект, либо создать действительный JSON для анализа.

VLAZ 21.03.2022 23:12

это исходит из переменной python. Мне нужно получить доступ к деталям, чтобы отобразить их в таблице.

user3594118 21.03.2022 23:13

Есть ли способ преобразовать это в объект или проанализировать данные для получения желаемых результатов?

user3594118 21.03.2022 23:16

Здесь работает JSON.parse: console.info(JSON.parse('{"a": {"b" : "c"}}'), "\ntype: ", typeof JSON.parse('{"a": {"b" : "c"}}'));. И здесь выдает ошибку: console.info(JSON.parse('{a: {b : c}}'), "\ntype: ", typeof JSON.parse('{a: {b : c}}'));.

jsN00b 21.03.2022 23:17

да я в курсе этого. но это данные, которые я получаю. Есть ли обходной путь для получения желаемого результата

user3594118 21.03.2022 23:18

Да, исправьте свой код Python, чтобы отправить действительный JSON. Если вы используете json.dumps, это произойдет автоматически».

Tim Roberts 21.03.2022 23:29

Я знаю, что получу много ответов «eval is evil» на это, но если вы доверяете источнику своего вывода на Python, вы можете сделать let obj = eval('(' + data + ')'), тогда вы можете вызывать свойства по своему желанию. obj.regression и др.

Tim 21.03.2022 23:59
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
7
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Существует простой способ сделать эту работу.

В коде Python используйте метод json.dumps() для преобразования словаря Python в допустимый JSON, как показано ниже.

import json

dictonary = {
  "name": "Name",
  "age": 0
};

print(json.dumps(dictionary)) # Returns JSON

Затем в свой JavaScript добавьте следующий код.

const data = "{\"name\": \"Name\", \"age\": 0}";
console.info(JSON.parse(data)); // Returns a JavaScript object

Теперь код JavaScript должен возвращать объект JavaScript без ошибок.

Другие вопросы по теме