Code: Alles auswählen
Sonnenschein = "Die Sonne scheint: [1, "Maier: begeistert"], Die Wolken sind grau: [2,"Udu: traurig"]"
Wie könnte man das hinkriegen?
Mfg
Udu
Code: Alles auswählen
Sonnenschein = "Die Sonne scheint: [1, "Maier: begeistert"], Die Wolken sind grau: [2,"Udu: traurig"]"
Code: Alles auswählen
Dictionary = {
"Die Sonne scheint": [1, "Maier: begeistert"],
"Die Wolken sind grau": [2,"Udu: traurig]"
...
}
Code: Alles auswählen
from pprint import pprint
import pyparsing as pp
def main():
sonnenschein = ('Die Sonne scheint: [1, "Maier: begeistert"],'
' Die Wolken sind grau: [2,"Udu: traurig"]')
key = pp.CharsNotIn(':')
value = pp.Combine('[' + pp.CharsNotIn(']') + ']')
item = pp.Group(key + pp.Suppress(':') + value)
items = pp.Dict(pp.delimitedList(item))
result = items.parseString(sonnenschein)
pprint(result.asDict())
if __name__ == '__main__':
main()
Code: Alles auswählen
$ python forum5.py
{'Die Sonne scheint': '[1, "Maier: begeistert"]',
'Die Wolken sind grau': '[2,"Udu: traurig"]'}
Erst einmal müsste der Code wie folgt aussehen:USER67 hat geschrieben:Ich würde gerne nach ":" spliten, allerdings soll es nur oberflächlich passieren, in den Listen soll es nicht geschehen.Code: Alles auswählen
Sonnenschein = "Die Sonne scheint: [1, "Maier: begeistert"], Die Wolken sind grau: [2,"Udu: traurig"]"
Code: Alles auswählen
Sonnenschein = 'Die Sonne scheint: [1, "Maier: begeistert"], Die Wolken sind grau: [2,"Udu: traurig"]'
Code: Alles auswählen
In [27]: data = u"""Die Sonne scheint: [1, "Maier: begeistert"], Die Wolken sind grau: [2,"Udu: traurig"]"""
In [30]: for token in re.findall("[ \w]*: \[.*?\]", data):
....: print token
....:
....:
Die Sonne scheint: [1, "Maier: begeistert"]
Die Wolken sind grau: [2,"Udu: traurig"]
Code: Alles auswählen
In [34]: re.findall("(?P<key>[ \w]*): (?P<value>\[.*?\])", data)
Out[34]:
[(u'Die Sonne scheint', u'[1, "Maier: begeistert"]'),
(u' Die Wolken sind grau', u'[2,"Udu: traurig"]')]
Code: Alles auswählen
In [712]: dict(re.findall(r'\s*(?P<key>[^:]+): (?P<value>\[.*?\]),?', data))
Out[712]:
{'Die Sonne scheint': '[1, "Maier: begeistert"]',
'Die Wolken sind grau': '[2,"Udu: traurig"]'}