Vì vậy, tôi đã dành nhiều thời gian cho việc này, và có vẻ như với tôi như nó phải là một sửa chữa đơn giản. Tôi đang cố gắng sử dụng Xác thực của Facebook để đăng ký người dùng trên trang web của mình và tôi đang cố gắng thực hiện phía máy chủ. Tôi đã nhận được đến điểm mà tôi nhận mã thông báo truy cập của tôi, và khi tôi đi đến:String to Dictionary in Python
https://graph.facebook.com/me?access_token=MY_ACCESS_TOKEN
tôi nhận được thông tin mà tôi đang tìm kiếm như là một chuỗi đó là như thế này:
{"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"}
Nó có vẻ như tôi chỉ cần có thể sử dụng dict(string)
về vấn đề này nhưng tôi nhận được lỗi này:
ValueError: dictionary update sequence element #0 has length 1; 2 is required
Vì vậy, tôi cố gắng sử dụng Pickle, nhưng có err này hoặc:
KeyError: '{'
Tôi đã thử sử dụng django.serializers
để hủy tuần tự hóa nhưng có kết quả tương tự. Có suy nghĩ gì không? Tôi cảm thấy câu trả lời phải đơn giản, và tôi chỉ là ngu ngốc. Cảm ơn vì bất kì sự giúp đỡ!
Nếu bạn muốn đánh giá chuỗi là Python, bạn có thể cần thay đổi chuỗi: '" verified ": true' không thành công trừ khi' true' được xác định. Hoặc bạn có thể sử dụng '" verified ": True' hoặc' "verified": "true" '. –
@Matt: Tôi nghi ngờ anh ta có thể thay đổi định dạng đầu ra của graph.facebook.com. –
@Fred: Với tiêu đề của câu hỏi ("String to Dictionary in Python"), tôi đoán anh ta có thể thay đổi nó từ Python trước khi anh ta gọi 'ast.literal_eval()'. Câu trả lời của bạn (sửa đổi) là đúng, mặc dù - một deserializer JSON là một giải pháp tốt hơn. –