가 나는 DB, 다음과 같은 형식으로 도착 문자열로 디코딩 및로드 할 필요 값 : 현재디코드 파이썬 JSON은
"[{u'date': 1508760000000, u'value': 0}, {u'date': 1509364800000, u'value': Decimal('5.989999771118164')}, {u'date': 1509969600000, u'value': Decimal('5.989999771118164')}, {u'date': 1510574400000, u'value': Decimal('9.579999923706055')}]"
, 이것은 내가에서 사용하는 코드입니다
import pandas as pd
import json
#json for example:
my_json="""[{u'date': 1508760000000, u'value': 0}, {u'date': 1509364800000, u'value': Decimal('5.989999771118164')}, {u'date': 1509969600000, u'value': Decimal('5.989999771118164')}, {u'date': 1510574400000, u'value': Decimal('9.579999923706055')}]"""
my_json=my_json[1:-1]
my_json=my_json.replace("u'","'")
my_json=my_json.replace("'",'"')
my_json=my_json.replace('Decimal("','')
my_json=my_json.replace('")','')
my_json=my_json.replace(', {','~ {')
my_json_list=my_json.split('~')
my_dict_list=[json.loads(row) for row in my_json_list]
df=pd.DataFrame(my_dict_list)
더 짧고 세련된 방법으로 이것을 수행 할 수 있습니까? 나는이 문제를 해결할 것이라고 생각
str(u'date')
'date'
:
문자열은 유효한'json'하지 않습니다. –
그 문자열은 어디에서 왔습니까? 'dict'의 파이썬'list'의'print' (각 문자열 앞의'u'는 유니 코드 문자열을 의미합니다)로부터 복사 된 것으로 보이며 실제로 유효한 JSON이 아닙니다. – Galen
문자열을'ast '로 리터럴 구조로 변환 할 수 있습니다 : 'import ast; ast.literal_eval (string)'하지만 귀하의 경우에는 Decimal 객체가 있고 작동하지 않지만 문제를 해결하는 [answer] (https://stackoverflow.com/a/18178379/3540693)을 확인할 수 있습니다. – Pentux