Toon posts:

[Python] Instance -> String conversie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb hier een object, waarvan ik 1 element (hetgeen in principe een string is) als string wil gebruiken.

Wat ik wil doen:
name=object[2]

Ik krijg echter telkens de error:
TypeError: argument 1: expected read-only character buffer, instance found

Nu neem ik aan dat ik een conversie uit moet voeren... alleen wat voor conversie?

Kan iemand me wellicht helpen?

  • tomato
  • Registratie: November 1999
  • Niet online
Kun je misschien iets meer code geven, ook van je 'object'?

Verwijderd

Topicstarter
Aangezien ik de source van de verzende class niet heb, kan ik niet zien wat er in het object geplakt wordt.... druk ik echter het complete object af, dan krijg ik:

[server%20Admin,%20'%20[',%20admin@unregistered%20domain,%20']']

het enige wat ik eruit moet halen is admin@unregistered%20domain...

  • tomato
  • Registratie: November 1999
  • Niet online
Hmm ik begrijp niet precies wat je aan het doen bent, maar misschien bedoel je
code:
1
name = object()[2]

Kun je anders toch nog iets meer code geven? Ook hoe je het object afdrukt?

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22-08 01:56
Voor zover ik het nu begrijp, is 'object' een instantie van één of andere onbekende klasse (waarvan de broncode niet beschikbaar is), die als een soort van container dienst doet (er zitten een aantal strings in). De topicstarter wil één van die strings eruit halen, maar weet niet hoe. Klopt dat zo een beetje?

Om dat te kunnen doen, zul je moeten weten hoe het object die elementen opslaat (zitten ze gewoon als lijst in een attribuut van het object?) of welke methoden er zijn om de elementen mee op te vragen. Je kunt bijvoorbeeld dir(object) gebruiken om alle beschikbare attributen op te vragen (maar eigenlijk wil je dat soort informatie uit documentatie halen, natuurlijk).

Verwijderd

Topicstarter
Soultaker: dat heb je mooi omschreven. Het product waar ik aan aan het klussen ben is volledig ongedocumenteerd, dus het is trial&errorren geblazen...

Maargoed, ik ga ff die dir optie proberen!!

  • Johannes
  • Registratie: Juni 2000
  • Laatst online: 29-07 19:20
Weet je zeker dat je de error op deze lijn code krijgt? Ik zie je hier namelijk niets met een string (read-only character buffer) doen. Als dit wel het geval is, dan is er waarschijnlijk een bug in het object zelf en kun je proberen met decompyle de source terug te krijgen en de bug te vinden.

Maar ik denk eigenlijk dat de fout pas later optreedt. Aan de afdruk van het complete object te zien lijkt het dat object[2] nog een object oplevert, en niet een string. Waarschijnlijk probeer je deze wel te gebruiken als een string, wat de TypeError oplevert.

Uit volle borst op weg naar nergens / Zonder reden zonder doel
Met m'n zeden en m'n zonden / En mijn angstig voorgevoel
Laat mij mijn kont tegen de krib / Laat mij dit goddeloze lied
Hef jij je handen maar ten hemel / Maar red mij niet


  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Volledig ongedocumenteerd bestaat in python niet. Je kunt je met pydoc toch de documentatie van de betreffende klasse uitprinten?
code:
1
[server%20Admin,%20'%20[',%20admin@unregistered%20domain,%20']']

Dit lijkt een reeks te zijn met als eerste element een string (server%20Admin) en als tweede element een reeks, dus je zou met
code:
1
name = object[1][0]

dan het gewenste resultaat eruit moeten kunnen halen. Eventueel moet je hier nog casten naar een string, dat hangt een beetje van de code af.

Everyone complains of his memory, no one of his judgement.

Pagina: 1