Ich habe eine Textdatei mit Ort Daten gefüllt von twitter api gefüllt. Hier ist die Probendaten aus 2 ZeilenKonvertieren in die Liste des Wörterbuchs
{'country': 'United Kingdom', 'full_name': 'Dorridge, England', 'id': '31fe56e2e7d5792a', 'country_code': 'GB', 'name': 'Dorridge', 'attributes': {}, 'contained_within': [], 'place_type': 'city', 'bounding_box': {'coordinates': [[[-1.7718518, 52.3635912], [-1.7266702, 52.3635912], [-1.7266702, 52.4091167], [-1.7718518, 52.4091167]]], 'type': 'Polygon'}, 'url': 'https://api.twitter.com/1.1/geo/id/31fe56e2e7d5792a.json'}
{'country': 'India', 'full_name': 'New Delhi, India', 'id': '317fcc4b21a604d5', 'country_code': 'IN', 'name': 'New Delhi', 'attributes': {}, 'contained_within': [], 'place_type': 'city', 'bounding_box': {'coordinates': [[[76.84252, 28.397657], [77.347652, 28.397657], [77.347652, 28.879322], [76.84252, 28.879322]]], 'type': 'Polygon'}, 'url': 'https://api.twitter.com/1.1/geo/id/317fcc4b21a604d5.json'}
Ich will ‚Land‘, ‚Name‘ und ‚cordinates‘ eingereicht jedes line.In Um dies wir tun müssen, Zeile für Zeile durchlaufen die gesamte file.so i anhängen jede Zeile in einer Liste
data = []
with open('place.txt','r') as f:
for line in f:
data.append(line)
, wenn ich den Datentyp überprüft es als ‚str‘ zeigt anstelle von ‚dict‘.
type(data[0])
str
data[0].keys()
AttributeError: 'str' object has no attribute 'keys'
wie Sie dies beheben, so dass es als Liste von Wörterbüchern gespeichert werden kann.
Ursprünglich Tweets wurden codiert und decodiert durch folgenden Code:
f.write(jsonpickle.encode(tweet._json, unpicklable=False) + '\n') #encoded and saved to a .txt file
tweets.append(jsonpickle.decode(line)) # decoding
Und Platz Datendatei durch folgenden Code gespeichert wird:
fName = "place.txt"
newLine = "\n"
with open(fName, 'a', encoding='utf-8') as f:
for i in range(len(tweets)):
f.write('{}'.format(tweets[i]['place']) +'\n')
Sie lesen eine Zeichenfolge, die aussieht wie '{'country': 'United Kingdom', ...}' usw. Sie möchten dies jedoch analysieren und in ein Wörterbuch umwandeln. Ich empfehle die Verwendung eines JSON-Parsers, um Ihre Arbeit zu erleichtern. :) – apnorton
Um zu @ apnortons Kommentar hinzuzufügen, wird Python mit einer [JSON-Bibliothek] ausgeliefert (https://docs.python.org/2/library/json.html) – UnholySheep
Die rationale Lösung ist das Speichern der Dateien im Json-Format und einfach Laden der Daten im erwarteten Format. Wenn es nicht möglich ist, können Sie 'ast.literal_eval' verwenden, um die Zeichenfolge als Python-Objekte auszuwerten. – Kasramvd