Tuple aus Dictionaries in einem String parsen
Verfasst: Montag 15. Juli 2013, 22:50
Hallo,
ich will in einem Python-Script mit einem PHP-Script auf einem Webserver Daten austauschen. Ich dachte mir, am einfachsten wäre es, wenn ich im PHP-Script die Daten so aufbereite das ich sie in Python einfach in eine Variable laden kann. Ich habe mir also einen String im PHP-Script gebaut, der in Python einem tuple aus dicts entspricht und diesen PHP-String dann per printf (über http) an das Python-Script verschickt.
In Python kommt der String auch klaglos an und sieht so aus:
Die Variable "rcvData" hat den Type String und jetzt kommt mein Problem, wie kann ich das einfach in eine Variable laden, die dann ein Tuple aus Dictionaries ist?
Wenn ich den empfangenen String nehme und ihn in den Quellcode packe, z.B.:
Dann ist "t" vom Type Tuple und enthält Dicts.
Falls meine Formatierung des Strings in PHP unglücklich ist, kann ich das auch problemlos ändern, bin für jeden Hinweis/Tipp dankbar!
Hier mein Python-Script (Minimalbeispiel):
ich will in einem Python-Script mit einem PHP-Script auf einem Webserver Daten austauschen. Ich dachte mir, am einfachsten wäre es, wenn ich im PHP-Script die Daten so aufbereite das ich sie in Python einfach in eine Variable laden kann. Ich habe mir also einen String im PHP-Script gebaut, der in Python einem tuple aus dicts entspricht und diesen PHP-String dann per printf (über http) an das Python-Script verschickt.
In Python kommt der String auch klaglos an und sieht so aus:
Code: Alles auswählen
print(rcvData)
"({'id':507,'name':'test'},{'id':796,'name':'xyz'},{'id':13,'name':'Ich bin ein Name'})"Wenn ich den empfangenen String nehme und ihn in den Quellcode packe, z.B.:
Code: Alles auswählen
t = ({'id':507,'name':'test'},{'id':796,'name':'xyz'},{'id':13,'name':'Ich bin ein Name'})Falls meine Formatierung des Strings in PHP unglücklich ist, kann ich das auch problemlos ändern, bin für jeden Hinweis/Tipp dankbar!
Hier mein Python-Script (Minimalbeispiel):
Code: Alles auswählen
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
import urllib2, urllib
trxData=[('one','1'),('two','2')]
trxData=urllib.urlencode(trxData)
path='http://localhost/py.php'
request=urllib2.Request(path, trxData)
response=urllib2.urlopen(request)
rcvData = response.read()
print(rcvData)