Я пытаюсь использовать json.loads
для анализа данных в таблице базы данных Redshift. Я отключил функцию тестирования в скрипте Python, и мне трудно понять, что происходит.Какой формат вводит данные для json.loads Python?
код я использую:
import json
j="'['Bars', 'American (Traditional)', 'Nightlife', 'Restaurants']'"
def trythis(item, reverse):
if not j:
return '1'
try:
arr = json.loads(j)
except ValueError:
return '2'
if not ascending:
arr = sorted(arr, reverse=True)
else:
arr = sorted(arr)
return json.dumps(arr)
print trythis(j, True)
И это возвращение 2
.
Я попытался изменить входную переменную на j="['Bars', 'American (Traditional)', 'Nightlife', 'Restaurants']"
, но это не сработало. В каком формате должно быть значение моего ввода?
Ах спасибо. Вы бы рекомендовали использовать что-то вроде 'str.replace' для замены внутренних одинарных кавычек на двойные кавычки? – simplycoding
Я бы просто переключил использование одиночных кавычек для двойных кавычек. Это менее запутанно для всех, кто читает ваш код. –
Вам не следует пытаться создавать JSON вручную, есть ряд деталей, которые вряд ли получат право. Используйте библиотечную функцию, которая создает JSON из структуры данных, например 'json.dumps()'. – Barmar