লুবার, আমি আপনার পোস্টটি স্ট্যাক ওভারফ্লোতে দেখেছি তবে ধারাবাহিকতার জন্য এখানে একটি অনুরূপ উত্তর পোস্ট করতে চলেছি। এটি একটি ভাল প্রশ্ন। আমি ঠিকানা যাচাইকরণ শিল্পে কাজ করি এবং আগে আপনার ধরণের সমস্যা মোকাবিলা করেছি।
আমি একটি মন্তব্যে এই স্ট্যাক ওভারফ্লো প্রশ্নের সাথে লিঙ্ক করেছি ; এবং এটি জেনে রাখা গুরুত্বপূর্ণ যে সম্পূর্ণ ফ্রিফর্ম রাস্তার ঠিকানাগুলির ফর্ম্যাট সম্পর্কে সত্যই কোনও গ্যারান্টি নেই। লিঙ্কযুক্ত পোস্টে উল্লিখিত হিসাবে, সম্পূর্ণ ঠিকানাগুলি এগুলির মতো দেখতে পারে:
1) 102 মূল রাস্তা যিনিটাউন, রাজ্য
2) 400n 600e # 2, 52173
3) পো # 104 60203
4) 1234 LKSDFJlkjsdflkjsdljf #asdf 12345
5) 205 1105 14 90210
(কারণগুলি লিঙ্কযুক্ত পোস্টে ব্যাখ্যা করা হয়েছে।) আমি বুঝতে পারি যে জিওপি একটি নির্দিষ্ট ফর্ম্যাটে ঠিকানাগুলি প্রত্যাবর্তন করে - ব্যবহৃত জিওকোডারের উপর নির্ভর করে (যার ফলস্বরূপ ফর্ম্যাটটি জিওপাইয়ের নিয়ন্ত্রণের বাইরে থাকে), তবে ঠিকানাগুলি একটি নির্দিষ্ট ব্যবস্থার মধ্যে সমস্ত ধরণের উপায় দেখতে পারে উপাদান (কমা থাকার মতো), এবং এটি জেনে রাখা গুরুত্বপূর্ণ যে মানকযুক্ত ঠিকানাগুলিতে কমা নেই (ইউএসপিএস প্রকাশনা অনুযায়ী 28)।
আমি সম্প্রতি লাইভএড্রেস নামে পরিচিত একটি এপিআইতে কাজ করতে সহায়তা করেছি ; এটি সবেমাত্র জিওকোডিং এবং একক-লাইন ঠিকানা পার্সিং সমর্থন করার জন্য আপগ্রেড করা হয়েছিল।
জিওপিকে জিওকোডের জন্য নকশাকৃত করা হয়েছে, উপাদানগুলিকে বিভক্ত করার জন্য নয় (যে কাজটি এখানে আসবে না সে কারণে এটি কার্যত সত্যই কঠিন)। LiveAddress হবে , কিন্তু, ঠিকানা componentize এবং ঠিকানা সম্পর্কে স্থানাঙ্ক এবং অন্যান্য তথ্য ফিরে এবং কেবল যদি ঠিকানাগুলি বাস্তব হয়; কোনও "অনুমান" ফলাফল নেই।
পাইথন ব্যবহার করে একটি একক-লাইন ঠিকানা উপাদানগুলিতে পার্স করতে, কেবলমাত্র পুরো ঠিকানাটিকে "রাস্তার" ক্ষেত্রের মধ্যে রেখে দিন:
import json
import pprint
import urllib
LOCATION = 'https://api.smartystreets.com/street-address/'
QUERY_STRING = urllib.urlencode({ # entire query sting must be URL-Encoded
'auth-token': r'YOUR_API_KEY_HERE',
'street': '1 infinite loop cupertino ca 95014'
})
URL = LOCATION + '?' + QUERY_STRING
response = urllib.urlopen(URL).read()
structure = json.loads(response)
pprint.pprint(structure)
ফলস্বরূপ JSON অবজেক্টে এমন একটি components
অবজেক্ট থাকবে যা দেখতে এরকম কিছু দেখবে:
"components": {
"primary_number": "1",
"street_name": "Infinite",
"street_suffix": "Loop",
"city_name": "Cupertino",
"state_abbreviation": "CA",
"zipcode": "95014",
"plus4_code": "2083",
"delivery_point": "01",
"delivery_point_check_digit": "7"
}
প্রতিক্রিয়াটিতে সম্মিলিত ফার্স্টলাইন এবং ডেলিভারি_লাইন 2ও অন্তর্ভুক্ত থাকবে যাতে আপনার যদি তাদের প্রয়োজন হয় তবে আপনাকে ম্যানুয়ালি কনটেটেট করতে হবে না।