programing

Python의 문자열에서 사전으로

coolbiz 2023. 3. 31. 23:26
반응형

Python의 문자열에서 사전으로

그래서 저는 이 문제에 많은 시간을 할애했고, 제가 보기엔 간단한 해결책으로 보입니다.Facebook의 Authentication을 사용하여 제 사이트에 사용자를 등록하려고 합니다.서버측에서 등록하려고 합니다.액세스 토큰을 얻을 수 있는 시점까지 도달했습니다.또, 다음의 조작을 실시합니다.

https://graph.facebook.com/me?access_token=MY_ACCESS_TOKEN

다음과 같은 문자열로 원하는 정보를 얻을 수 있습니다.

{"id":"123456789","name":"John Doe","first_name":"John","last_name":"Doe","link":"http:\/\/www.facebook.com\/jdoe","gender":"male","email":"jdoe\u0040gmail.com","timezone":-7,"locale":"en_US","verified":true,"updated_time":"2011-01-12T02:43:35+0000"}

그냥 내가 이 모든 걸 다 쓸 수 있을 것 같아dict(string)이 에러는 표시됩니다.

ValueError: dictionary update sequence element #0 has length 1; 2 is required

그래서 피클을 사용하려고 했는데 다음과 같은 오류가 발생했습니다.

KeyError: '{'

나는 그것을 사용해봤어요.django.serializers하지만 비슷한 결과가 나왔습니다.무슨 생각 있어?답은 간단해야 할 것 같아 바보같이 굴고 있어도와주셔서 감사합니다!

이 데이터는 JSON입니다! Python 2.6+를 사용하는 경우 내장 모듈을 사용하여 역직렬화할 수 있습니다. 그렇지 않으면 우수한 서드파티 모듈을 사용할 수 있습니다.

import json    # or `import simplejson as json` if on Python < 2.6

json_string = u'{ "id":"123456789", ... }'
obj = json.loads(json_string)    # obj now contains a dict of the data

Python 리터럴을 평가하려면 ast.literal_eval을 사용합니다.단, JSON(예를 들어 "참"에 주의)이므로 JSON 역직렬화기를 사용하십시오.

>>> import json
>>> s = """{"id":"123456789","name":"John Doe","first_name":"John","last_name":"Doe","link":"http:\/\/www.facebook.com\/jdoe","gender":"male","email":"jdoe\u0040gmail.com","timezone":-7,"locale":"en_US","verified":true,"updated_time":"2011-01-12T02:43:35+0000"}"""
>>> json.loads(s)
{u'first_name': u'John', u'last_name': u'Doe', u'verified': True, u'name': u'John Doe', u'locale': u'en_US', u'gender': u'male', u'email': u'jdoe@gmail.com', u'link': u'http://www.facebook.com/jdoe', u'timezone': -7, u'updated_time': u'2011-01-12T02:43:35+0000', u'id': u'123456789'}

Python 3.x의 경우

import json
t_string = '{"Prajot" : 1, "Kuvalekar" : 3}'
res = json.loads(t_string)
print(res) # <dict>  {"Prajot" : 1, "Kuvalekar" : 3}

언급URL : https://stackoverflow.com/questions/4917006/string-to-dictionary-in-python

반응형